我从源代码下载并构建了Boost 1.55。我正在尝试使用Boost-log。在基本情况下(http://boost-log.sourceforge.net/libs/log/doc/html)/log/tutorial.html#log.tutorial.trivial它工作正常没有任何问题,但当我尝试使用一些更高级的功能(像这样 - http://boost-log.sourceforge.net/libs/log/example/doc/tutorial_fmt_stream.cpp)时,我收到此错误:
main.obj:错误LNK2019:未解析的外部符号“void __cdecl boost :: filesystem :: path_traits :: convert(char const *,char const *,类std :: basic_string,class std :: allocator> &,class std :: codecvt const&)“(?convert @ path_traits @ filesystem @ boost @@ YAXPBD0AAV?$ basic_string @ GU?$ char_traits @ G @ std @@ V?$ allocator @ G @ 2 @@ std @@ ABV?$ @的codecvt GDH @ 5 @@ Z) 在函数“void __cdecl中引用 boost :: filesystem :: path_traits :: dispatch,class std :: allocator> >(类 的std :: basic_string的,类 std :: allocator> const&,类std :: basic_string,类 std :: allocator> &,class std :: codecvt const&)“ (?? $ @派遣V'$ @的basic_string顾?$ @ char_traits @摹性病@@ V'$ @分配器@ g ^ 2 @@ STD @@@ path_traits @文件系统@升压@@ YAXABV?$ @的basic_string杜?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 STD @@ AAV?$ basic_string的@ GU?$ char_traits @ģ@ @@ STD V'$分配器@ģ@ @@ 2 4 @ ABV?$的codecvt @ GDH @ @@ 4 Z)
1> main.obj:错误LNK2019:未解析的外部符号“void __cdecl boost :: log :: v2s_mt_nt5 :: aux :: code_convert(unsigned short const *,unsigned int,class std :: basic_string,class std :: allocator> &安培;,类 std :: locale const&)“ (?code_convert @ AUX @ v2s_mt_nt5 @日志@ @@升压YAXPBGIAAV?$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 STD @@ @ ABVlocale 6 @@ Z) 在函数“private:void __thiscall中引用 boost :: log :: v2s_mt_nt5 :: basic_formatting_ostream,class std :: allocator> :: aligned_write(unsigned short const *,__ int64)“(?? $ aligned_write @ G @?$ basic_formatting_ostream @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ v2s_mt_nt5 @ log @ boost @ @ AAEXPBG_J @ Z)
1> main.obj:错误LNK2019:未解析的外部符号“public:static class std :: codecvt const& __cdecl 提高::文件系统::路径::的codecvt(无效)” (?@的codecvt路径文件系统@ @升压@@ SAABV?$ @的codecvt GDH @ STD @@ XZ) 在函数“public:__thiscall中引用 boost :: filesystem :: path :: path(char const(&)[14],void *)“(?? $?0 $$ BY0O @ $$ CBD @ path @ filesystem @ boost @@ QAE @ AAY0O @ $$ CBDPAX @ Z)
所以基本上它找不到.lib文件中的函数convert(...),code_convert(...)和codecvt(...)。
我已经尝试将所有发布库(构建boost时生成的.lib文件)添加到“其他库”中,通常我认为visual studio可以找到所有库,但无法在库中找到这些函数。任何想法如何解决这个问题?
我使用visual studio 2010(msvc10.0),32位,发布和调试从源代码构建Boost 1.55。我正在使用Windows 7 x64。
答案 0 :(得分:1)
我遇到了同样的问题,我可以通过更改VisualStudio 2010上的一个Project属性来修复它。
转到:
属性页 - > ConfigurationProperties - > C / C ++ - >语言 - >将WChar_t视为内置类型:
并将属性设置为:
是(/ Zc:wchar_t)
我希望它对你也有帮助:))
小心,