我有一个 VS2008 本机 C++ 项目,我希望将其编译为 DLL。
它只引用一个外部库(log4cplus.lib),并使用它的功能。(自然也使用 log4cplus 的 .h 文件)。
当我尝试将我的项目编译为静态库时,它成功了。当我尝试作为 DLL 时,它失败了:
1>MessageWriter.obj : error LNK2019: unresolved external symbol "public: static class log4cplus::Logger __cdecl log4cplus::Logger::getInstance(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" (?getInstance@Logger@log4cplus@@SA?AV12@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z) referenced in function "class log4cplus::Logger __cdecl Log(void)" (?Log@@YA?AVLogger@log4cplus@@XZ)
还有 4 个与 log4cplus.lib 中的函数相关的错误。
这似乎真的很愚蠢..请帮助我:)
谢谢!
编辑 :
我链接到 log4cplus.lib 文件,它发现它很好。此外,log4cplus.lib 是 100% 功能的,我在另一个项目中使用它没有问题。我的初衷是将我的项目编译为静态库并在我正在编写的另一个 DLL 中使用它,但是当这样做时,我在另一个项目中得到相同的链接器错误......
编辑#2:
导致链接器错误的函数是静态函数。这可能是问题的一部分吗?