【发布时间】:2016-04-06 08:58:56
【问题描述】:
我正在尝试在我的项目中使用 log4cplus 作为记录器。我已经在 VS2013 中成功下载并编译了“Debug_Unicode”和“Release_Unicode”的 log4cplus(项目在 Release 和 Debug 中成功编译)。
在我的“项目属性->配置属性”中我添加了:
- 'log4cplus\include' 到 'C/C++->All Options->Additional Include Directories'
- 'log4cplus\msvc10\Win32\obj.log4cplus.Release_Unicode' 到 '链接器->所有选项->附加库目录'
- “链接器->所有选项->其他依赖项”中的“log4cplusu.lib”
我还确保我在 log4cplus 项目和我自己的项目中使用相同的运行时库,在我的例子中是多线程 DLL (/MD)。
但是当我尝试构建我的项目时,我收到以下链接错误:
error LNK2001: unresolved external symbol "class std::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char> > & __cdecl log4cplus::detail::get_macro_body_oss(void)" (?get_macro_body_oss@detail@log4cplus@@YAAAV?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) error LNK2001: unresolved external symbol "void __cdecl log4cplus::detail::macro_forced_log(class log4cplus::Logger const &,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,char const *,int,char const *)" (?macro_forced_log@detail@log4cplus@@YAXABVLogger@2@HABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBDH2@Z) fatal error LNK1120: 2 unresolved externals
【问题讨论】:
-
我刚刚遇到了与 Qt 类似的问题,以下链接为我提供了合适的解决方案:stackoverflow.com/questions/14170770/…,当然,Q_OBJECT hack 不起作用...
标签: c++ logging build linker log4cplus