0

我正在使用编译器 MSVC2008 编译我的 Qt 项目,并且出现链接器错误,例如-

_class_name.obj_:error LNK2001 : 无法解析的外部符号“public: static struct QMetaObject....”...在函数“_function_name_”中引用

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

我有几个基本的查询-

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

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

  3. 如何解决这些?

注意:我使用的是 QtCreater,所以构建系统使用 qmake,编译器使用的是 MSVC2008。

4

2 回答 2

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

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

  3. 以下是我能想到的可能性:

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

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

于 2014-01-13T13:12:25.020 回答
0

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

在链接器的Additional Dependencies属性下检查: QtCore5.lib- 对于 Qt5 Release QtCore5d.lib- 对于 Qt5 Debug

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

于 2014-01-13T15:07:18.540 回答