在静态库中诊断未解析的外部

时间:2013-04-17 04:35:32

标签: c++ visual-c++ linker

我有很多DLL在没有问题的情况下构建和链接我的应用程序,但这个静态库给我带来了麻烦。

现在只有一个班级。在构建lib时使用__declspec(dllexport)声明该类,在应用程序中包含类的标题时使用__declspec(dllimport)声明该类。

当我尝试使用MyClass实例构建应用程序时,我得到:

error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall MyClass::~MyClass(void)"
error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall MyClass::MyClass(void)"

如果我尝试使用指向MyClass的指针构建应用程序,我会得到相同的未解析外部以及另外两个警告:

warning LNK4217: locally defined symbol ??0MyClass@@QAE@XZ (public: __thiscall MyClass::MyClass(void)) imported in function _main
warning LNK4217: locally defined symbol ??1MyClass@@UAE@XZ (public virtual __thiscall MyClass::~MyClass(void))

在网上搜索LNK4217表示错误地使用/M[TD]d? cl.exe开关。我重新创建了Visual Studio解决方案并拖动了源代码以确保它已正确配置。作为参考,Lib和app都有/ MDd。

0 个答案:

没有答案