我正在尝试在我的 MSVC 项目中使用 log4cpp。我下载了 log4cpp,并打开了它的 msvc10\msvc10.sln 文件。我正在使用 Visual Studio 2012 (msvc11),所以它提示我更新 log4cpp 的项目。我做到了,一切似乎都很顺利。然后我构建了 log4cppLIB 项目。它生成了 msvc10\log4cppLIB\Debug\log4cppD.lib。到目前为止似乎很好。
回到我自己的项目中,我将 msvc10\log4cppLIB\Debug 添加到我的链接器库目录中,并将 log4cppD.lib 添加到我的链接器依赖项中。当我尝试构建我的项目时,我收到此错误:
error LNK2019: unresolved external symbol "public: static class log4cpp::Category & __cdecl log4cpp::Category::getInstance(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?getInstance@Category@log4cpp@@SAAEAV12@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
我尝试过的事情:
也许我的链接器路径或文件名错误?不,因为如果我故意使用错误的路径,那么我会得到另一种错误(
fatal error LNK1104: cannot open file 'log4cpp.lib'
)也许内存模型需要匹配?我的项目是x64,log4cpp默认为win32。但是没有。我将 log4cpp 更改为 x64 并重建。但是随后重新构建我的项目会产生更多的错误,这种错误(
error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MTd_StaticDebug'
)。
有什么想法吗?