【发布时间】:2013-09-20 16:40:20
【问题描述】:
我已经在 VS2012 中下载并编译了 log4cplus。 编译很好(调试和发布) 我尝试在我的代码中使用它,但出现 3 个链接错误,我尝试过的任何操作都没有删除它们。 我正在使用来自 log4cplus 项目的相同包含,以及我编译的库(尝试了所有 3...调试版本和 log4cplusS.lib
我仍然得到这些:
错误 LNK2019:无法解析的外部符号“__declspec(dllimport) 类 std::basic_ostringstream,类 std::allocator > & __cdecl log4cplus::detail::get_macro_body_oss(void)" (_imp?get_macro_body_oss@detail@log4cplus@@YAAAV?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@XZ) 在函数“int __cdecl Prepare(class std::basic_string,类 std::allocator > &,class std::basic_string,class std::allocator > &,class std::basic_string,类 std::allocator > &,int *,int *,int *)" (?Prepare@@YAHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@00PAH11@Z)
错误 LNK2019:无法解析的外部符号“__declspec(dllimport) 公共:静态类 log4cplus::Logger __cdecl log4cplus::Logger::getInstance(类 std::basic_string,类 std::allocator > const &)" (_imp?getInstance@Logger@log4cplus@@SA?AV12@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ @Z) 在函数“int __cdecl Prepare(class std::basic_string,类 std::allocator > &,class std::basic_string,class std::allocator > &,class std::basic_string,类 std::allocator > &,int *,int *,int *)" (?Prepare@@YAHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@00PAH11@Z)
怎么了?
我的代码很简单,在我的 dll cpp 中:
在cpp的顶部我添加了
static Logger logger;
在我添加的功能之一中:
logger = Logger::getInstance(LOG4CPLUS_TEXT("MyDLL"));
LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("Prepare Starts"));
【问题讨论】:
标签: c++ c++11 linker log4cplus