2017-08-15 32 views
0

当我尝试在wchar模式下使用pugi构建一个二进制文件时,我得到一个链接器未定义引用错误的负载,暗示缺少库中一些函数的wchar_t版本。在wchar模式下链接pugixml的错误

我使用的是我从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_MODEmain.cpp以上#include,和取消注释#definepugiconfig.hpp

如果我删除WCHAR的所有痕迹(L""""和删除-DPUGIXML_WCHAR_MODE),构建都要顺利。

我应该重建库,如果我想使用wchar模式?我找不到任何相关的信息the manual.

回答

0

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

是的。除非它控制了库的编译(在我看来),否则拥有这样的宏是没有意义的。它在编译库和库的用户时都必须(未定义)。