构建一个最小的Qt控制台项目失败了一个神秘的链接器错误LNK2001:未解析的外部符号

时间:2013-07-04 09:47:52

标签: c++ qt linker

我正在尝试编译一个带有事件循环的最小Qt控制台应用程序和一个自定义类,其构造函数的内联定义如https://stackoverflow.com/a/4182144/1619432,并获得三个神秘的链接器错误(使用Qt 4.8.1和MSVC 2010 Express C ++) :

main.obj:-1: error: LNK2001: Unresolved external symbol ""public: virtual struct QMetaObject const * __thiscall ....

with :: metaObject,:: qt_metacast,:: qt_metacall。

1 个答案:

答案 0 :(得分:0)

#include "main.moc"

在int main(...)上方是至关重要的。如果找不到该文件,请尝试清理项目/删除构建目录,运行qmake,重新启动Qt Creator甚至整个系统。 这可能与环境变量中的路径有关(可能先前由不同的项目设置)。

另一个常见的原因似乎是类声明中遗忘的Q_OBJECT宏,或者如上所述,在包含它之后运行qmake。

祝你好运!