在wchar模式下链接pugixml的错误

时间:2017-08-15 10:47:29

标签: c++ xml pugixml

当我尝试在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.

中找不到任何相关内容

1 个答案:

答案 0 :(得分:0)

  

如果我想使用wchar模式,我是否应该重建库?

是。除非它控制了库的编译(在我看来),否则拥有这样的if(storeTarget.offset().top>200){ $("#search_results").scrollTop(storeTarget.offset().top); } 宏是没有意义的。在编译库和库的用户时,必须(未)定义它。