在VS2012中使用log4cplus链接错误

时间:2013-09-16 13:43:21

标签: c++ c++11 linker log4cplus

我在VS2012中下载并编译了log4cplus。 编译很好(调试和发布) 我试图使用它我的代码,但我得到3个链接错误,我尝试没有删除它们。 我正在使用log4cplus项目中的相同包含,以及我编译的libs(尝试了所有3 ...调试版本和log4cplusS.lib

我仍然得到这些:

  

错误LNK2019:未解析的外部符号“__declspec(dllimport)类   std :: basic_ostringstream,class std :: allocator> &安培; __cdecl   log4cplus ::详细:: get_macro_body_oss(无效)”   (_ 小鬼?get_macro_body_oss @细节@ @@ log4cplus YAAAV?$ basic_ostringstream @ _WU?$ char_traits @ _W @ @@ STD V'$分配器@ _W @ @@ 2 STD @@ XZ)   在函数“int __cdecl Prepare(class   的std :: basic_string的,类   std :: allocator> &,类std :: basic_string,class std :: allocator> &安培;,类   的std :: basic_string的,类   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&)“   (_ 小鬼?的getInstance @记录器@ @@ log4cplus SA?AV12 @ ABV?$ basic_string的@ _WU?$ char_traits @ _W @ @@ STD V'$分配器@ _W @ @@ 2 STD @@ @Z)   在函数“int __cdecl Prepare(class   的std :: basic_string的,类   std :: allocator> &,类std :: basic_string,class 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 个答案:

答案 0 :(得分:6)

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