当我尝试在wchar模式下使用pugi构建二进制文件时,我得到一堆链接器未定义的引用错误,暗示库中某些函数缺少wchar_t
版本。
我正在使用从apt-get获得的Ubuntu 16.04和libpugixml-dev
。
以下是拒绝构建的示例代码:
#include <pugixml.hpp>
int main(int argc, char *argv[])
{
pugi::xml_node n;
n.set_name(L"");
return 0;
}
我用
构建g++ -o pugi_test main.cpp -std=c++11 -DPUGIXML_WCHAR_MODE -lpugixml
并获取
undefined reference to `pugi::xml_node::set_name(wchar_t const*)'
我还尝试将#define PUGIXML_WCHAR_MODE
放在main.cpp
#include
以上,并取消注释#define
中的pugiconfig.hpp
。
如果我删除所有wchar的痕迹(L""
⇒""
并删除-DPUGIXML_WCHAR_MODE
),那么构建顺利进行。
如果我想使用wchar模式,我是否应该重建库?我在the manual.
中找不到任何相关内容答案 0 :(得分:0)
如果我想使用wchar模式,我是否应该重建库?
是。除非它控制了库的编译(在我看来),否则拥有这样的if(storeTarget.offset().top>200){
$("#search_results").scrollTop(storeTarget.offset().top);
}
宏是没有意义的。在编译库和库的用户时,必须(未)定义它。