首页 文章

在VS2012中使用时,log4cplus链接错误

提问于
浏览
5

我在VS2012中下载并编译了log4cplus . 编译很好(调试和发布)我试图使用它我的代码但我得到3个链接错误,我尝试没有删除它们 . 我正在使用log4cplus项目中的相同包含,以及我编译的libs(尝试了所有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,class std :: allocator>&,class std :: basic_string,class std :: allocator>&,class std :: basic_string,class std :: allocator>&,int *,int *,int *)“(?准备@@ YAHAAV?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ 00PAH11 @ Z)错误LNK2019:未解析的外部符号“__declspec(dllimport)public:static class log4cplus :: Logger _cdecl log4cplus :: Logger :: getInstance(class std :: basic_string,class std :: allocator> const&)“( imp?getInstance @ Logger @ log4cplus @@ SA?AV12 @ ABV?$ basic_string @ _WU?$ char_traits @ _W @ std @@ V?$在函数“int __cdecl Prepare(class std :: basic_string,class std :: allocat)中引用了allocator @ _W @ 2 @@ std @@@ Z)或>&,类std :: basic_string,类std :: allocator>&,类std :: basic_string,类std :: allocator>&,int *,int *,int *)“(?准备@@ YAHAAV?$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 STD @@ @ 00PAH11 Z)

怎么了?

我的代码很简单,在我的dll cpp中:

在cpp的顶部,我添加了

static Logger logger;

在我添加的一个功能中:

logger = Logger::getInstance(LOG4CPLUS_TEXT("MyDLL"));
LOG4CPLUS_INFO(logger, LOG4CPLUS_TEXT("Prepare Starts"));

1 回答

  • 6

    您可能已使用 Release 配置编译了log4cplus . 您需要使用 Release_Unicode (类似于 Debug 配置) .

相关问题