QT 的两个链接问题

qt-creator 无法显示链接错误

很早就碰到这个问题,一直没有解决。在 qt-creator compile output 窗口中,仅显示 LINK 错误号,没有错误信息。

用命令行编译看看提示信息是什么。

D:\Qt\Qt5.7.0\5.7\msvc2015\bin\qtenv2.bat
"D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
cd /d E:\code\qt\my-project
"D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile.Debug

看结果发现,LINK 错误信息中有中文,造成解析错误。下载安装 VS2015 英文语言包,安装并切换成英文,可解决此问题。

LINK 错误,提示找不到 signal 和 metaobject。

排除了各种可能,一直无法解决

  • 没有写 Q_OBJECT
  • 命名空间错误
  • 没有链接 obj 文件
  • 删除中间文件重新编译

最后浏览工程文件时发现,头文件和源文件都是 cpp 文件。修改 pro 文件,把头文件修改正确就行了。