c++ - 在 VS2012 中使用时出现 log4cplus 链接错误

标签 c++ c++11 linker log4cplus

我已经在 VS2012 中下载并编译了 log4cplus。 编译很好(调试和发布) 我尝试在我的代码中使用它,但我收到 3 个链接错误,我尝试过的任何操作都没有删除它们。 我正在使用来自 log4cplus 项目的相同包含,以及我编译的库(尝试了所有 3...调试版本和 log4cplusS.lib

我仍然得到这些:

error LNK2019: unresolved external symbol "__declspec(dllimport) class std::basic_ostringstream,class 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) referenced in function "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 *)" (?Prepare@@YAHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@00PAH11@Z)

error LNK2019: unresolved external symbol "__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?$allocator@_W@2@@std@@@Z) referenced in function "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 *)" (?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"));

最佳答案

很可能您已经使用 Release 配置编译了 log4cplus。您将需要使用 Release_Unicode(与 Debug 配置类似)。

关于c++ - 在 VS2012 中使用时出现 log4cplus 链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18829571/

相关文章:

c++ - 我们可以从函数中按值返回具有已删除/私有(private)复制/移动构造函数的对象吗?

c++ - 为什么这个程序有这种行为(push_back)?

iphone - 如何添加以下额外的链接器标志?

c# - 跟踪 GPU 内存泄漏的专业方法(分配而不释放)

c++ - 无法在成员函数中将左值绑定(bind)到右值,但在全局函数中可以

C++ 类型修饰符顺序

c++ - 从函数返回二维 double 组

c++ - vector push_back a moved local var in c++11 测试和混淆

objective-c - 框架链接错误,找不到图像?

c++ - 构建 Metakit 时 undefined reference