Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;:&引用;未解析的外部符号“;在VS2010中成功构建.lib后创建.dll时_C++_Visual Studio 2010_Dll_Linker - Fatal编程技术网

C++ C++;:&引用;未解析的外部符号“;在VS2010中成功构建.lib后创建.dll时

C++ C++;:&引用;未解析的外部符号“;在VS2010中成功构建.lib后创建.dll时,c++,visual-studio-2010,dll,linker,C++,Visual Studio 2010,Dll,Linker,这是我第一次尝试创建.dll,它将用作第三方应用程序的插件 我在VS210中创建了一个.dll项目…新建项目->Win32控制台应用程序->.dll+空项目选项 然后我添加了我想要使用的文件,并包含了代码所需的各种include/dependency lib。此外,将链接器设置为包含output.lib 配置属性->链接器->高级->导入库-$(OutDir)$(TargetName).lib 当.lib被成功编译时,只要VS尝试构建.dll,我就会收到一堆与所有已定义函数名相关的“未解析外部符

这是我第一次尝试创建.dll,它将用作第三方应用程序的插件

我在VS210中创建了一个.dll项目…新建项目->Win32控制台应用程序->.dll+空项目选项

然后我添加了我想要使用的文件,并包含了代码所需的各种include/dependency lib。此外,将链接器设置为包含output.lib

配置属性->链接器->高级->导入库-$(OutDir)$(TargetName).lib

当.lib被成功编译时,只要VS尝试构建.dll,我就会收到一堆与所有已定义函数名相关的“未解析外部符号”错误

ClCompile:
SOMPlugin.cpp
Link:
Creating library F:\Data\My Documents\Visual Studio 2010\Projects\Plugin-SOM - Copy\Release\Plugin-SOM.lib and object F:\Data\My Documents\Visual Studio 2010\Projects\Plugin-SOM - Copy\Release\Plugin-SOM.exp
SOMPlugin.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall SOMPlugin::metaObject(void)const " (?metaObject@SOMPlugin@@UBEPBUQMetaObject@@XZ)
SOMPlugin.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall SOMPlugin::qt_metacast(char const *)" (?qt_metacast@SOMPlugin@@UAEPAXPBD@Z)
SOMPlugin.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall SOMPlugin::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@SOMPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
SOMPlugin.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall SOMPlugin::updateView(void)" (?updateView@SOMPlugin@@MAEXXZ)
SOMPlugin.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall SOMPlugin::updatedObject(int,class UpdateType const &)" (?updatedObject@SOMPlugin@@MAEXHABVUpdateType@@@Z)
SOMPlugin.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall SOMPlugin::addToolbox(class QString,class QWidget *)" (?addToolbox@SOMPlugin@@MAEXVQString@@PAVQWidget@@@Z)
SOMPlugin.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall SOMPlugin::log(class QString)" (?log@SOMPlugin@@MAEXVQString@@@Z)
SOMPlugin.obj : error LNK2001: unresolved external symbol "protected: virtual void __thiscall SOMPlugin::log(enum Logtype,class QString)" (?log@SOMPlugin@@MAEXW4Logtype@@VQString@@@Z)
SOMPlugin.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall SOMPlugin::~SOMPlugin(void)" (??1SOMPlugin@@UAE@XZ) referenced in function "public: virtual void * __thiscall SOMPlugin::`scalar deleting destructor'(unsigned int)" (??_GSOMPlugin@@UAEPAXI@Z)
SOMPlugin.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const SOMPlugin::staticMetaObject" (?staticMetaObject@SOMPlugin@@2UQMetaObject@@B)
F:\Data\My Documents\Visual Studio 2010\Projects\Plugin-SOM\Release\Plugin-SOM.dll : fatal error LNK1120: 9 unresolved externals

任何帮助都将不胜感激。

即使您遇到链接器错误,也会生成
lib
。让我们看一个:

SOMPlugin.obj:错误LNK2001:未解析的外部符号“public: 虚拟结构QMetaObject const*\uu thiscall SOMPlugin::元对象(void)常量“ (?metaObject@SOMPlugin@@UBEPBUQMetaObject@@XZ)

这说明您尚未实现方法
SOMPlugin::metaObject(void)const
。有吗

除此之外,其余的都是相似的

SOMPlugin.obj:错误LNK2001:未解析的外部符号“public: 静态结构QMetaObject const SOMPlugin::staticMetaObject“ (?staticMetaObject@SOMPlugin@@2UQMetaObject@@B)


在这种情况下,您需要在类定义之外的实现文件中为静态成员定义。

需要查看一些代码:(这与Qt有关吗?抱歉,我刚刚意识到我忘了包含一些额外的文件。谢谢你的帮助。