我在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"));
答案 0 :(得分:6)
您可能使用Release
配置编译了log4cplus。您需要使用Release_Unicode
(类似于Debug
配置)。