Boost-log链接器错误

时间:2013-12-19 18:10:12

标签: c++ visual-studio-2010 boost linker boost-log

我从源代码下载并构建了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。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我可以通过更改VisualStudio 2010上的一个Project属性来修复它。

转到:

属性页 - > ConfigurationProperties - > C / C ++ - >语言 - >将WChar_t视为内置类型:

并将属性设置为:

是(/ Zc:wchar_t)

我希望它对你也有帮助:))

小心,