链接器错误LNK2001和LNK2019

时间:2014-01-13 12:26:41

标签: qt compiler-errors linker lnk2019 lnk2001

我正在使用编译器MSVC2008编译我的Qt项目,我收到链接器错误,如 -

_class_name.obj_:错误 LNK2001 :未解析的外部符号“public:static struct QMetaObject ....”...在函数“_function_name _”中引用

_class_name.obj_:错误 LNK2019 :未解析的外部符号“public:static struct QMetaObject ...”...在函数“_function_name _”中引用

我的基本查询很少 -

  1. 错误LNK2001和LNK2019是什么意思?

  2. 为什么会出现这些错误?

  3. 如何解决这些问题?

  4. 注意:我正在使用QtCreater,因此构建系统使用qmake,使用的编译器是MSVC2008。

2 个答案:

答案 0 :(得分:2)

  1. 简而言之,您使用了一个声明但未定义的函数。

  2. 它应该是您的类使用Qt功能(如信号槽)但不正确。

  3. 这是我能想到的可能性:

    3-A。仔细检查你在课程开头写的“Q_OBJECT”是否使用了Qt功能。

    3-b中。您调用“moc”属性,即检查您的Qt Visual Studio插件是否已安装并启用。

答案 1 :(得分:0)

您已包含错误/太少的文件或忘记将.lib文件添加到msvc中的链接器。

在链接器的Additional Dependencies属性下检查: QtCore5.lib - 适用于Qt5发布 QtCore5d.lib - 用于Qt5调试

QMetaObject包含在其中一个中,但它们可能不是您项目中唯一的依赖项。