我正在使用编译器MSVC2008编译我的Qt项目,我收到链接器错误,如 -
_class_name.obj_:错误 LNK2001 :未解析的外部符号“public:static struct QMetaObject ....”...在函数“_function_name _”中引用
_class_name.obj_:错误 LNK2019 :未解析的外部符号“public:static struct QMetaObject ...”...在函数“_function_name _”中引用
我的基本查询很少 -
错误LNK2001和LNK2019是什么意思?
为什么会出现这些错误?
如何解决这些问题?
注意:我正在使用QtCreater,因此构建系统使用qmake,使用的编译器是MSVC2008。
答案 0 :(得分:2)
简而言之,您使用了一个声明但未定义的函数。
它应该是您的类使用Qt功能(如信号槽)但不正确。
这是我能想到的可能性:
3-A。仔细检查你在课程开头写的“Q_OBJECT”是否使用了Qt功能。
3-b中。您调用“moc”属性,即检查您的Qt Visual Studio插件是否已安装并启用。
答案 1 :(得分:0)
您已包含错误/太少的文件或忘记将.lib文件添加到msvc中的链接器。
在链接器的Additional Dependencies
属性下检查:
QtCore5.lib
- 适用于Qt5发布
QtCore5d.lib
- 用于Qt5调试
QMetaObject
包含在其中一个中,但它们可能不是您项目中唯一的依赖项。