我已经下载了四个Qt 5.1.0软件包:
Qt 5.1.0 for Windows 32-bit(MinGW 4.8,OpenGL,666 MB)
Qt 5.1.0 for Windows 32-bit(VS 2010,505 MB)
Qt 5.1.0 for Windows 64-bit(VS 2012,525 MB)
Qt 5.1.0 for Windows 64-bit(VS 2012,OpenGL,522 MB)
安装完所有这四个软件包后,我创建了一个非常简单的软件包 QT项目使用 Qt 5.1.0 for Windows 32位(VS 2010,505 MB)
该项目是一个带有ui表格的Qt gui应用程序。我创建它只是按照 Qt Creator的模板没有输入任何单词。之后我建立了这个项目 并且运行,一切都很好。
然后我在项目中添加了一个新的C ++类。添加的C ++类的基类是QWidget。 这次,我仍然没有在.cpp和.h文件中输入任何单词。所以增加了课程 仅由Qt Creator创建。之后,我再次构建了这个项目,然后运行, 一切都还行。
现在我开始添加我的代码了。 我在mainwindow.h中添加了一行:
#include "myclass.h"
然后我在mainwindow.cpp中添加了另一行:
pMyClass = new CMyClass(this);
之后我再次构建了这个项目,这次发生了两次错误。
error LNK2001: unresolved external symbol public: __thiscall CMyClass::CMyClass(class QWidget *)" (??0CMyClass@@QAE@PAVQWidget@@@Z)
error LNK1120: 1 unresolved externals
我使用另外三个Qt版本构建了相同的项目:
Qt 5.1.0 for Windows 32-bit(MinGW 4.8,OpenGL,666 MB)
Qt 5.1.0 for Windows 64-bit(VS 2012,525 MB)
Qt 5.1.0 for Windows 64-bit(VS 2012,OpenGL,522 MB)
构建和运行都是成功的。一切都好。
因为我的项目可以使用
成功构建并运行Qt 5.1.0 for Windows 32-bit(MinGW 4.8,OpenGL,666 MB)
Qt 5.1.0 for Windows 64-bit(VS 2012,525 MB)
Qt 5.1.0 for Windows 64-bit(VS 2012,OpenGL,522 MB)
我很确定我的项目没有任何问题。
仅使用 Qt 5.1.0 for Windows 32位(VS 2010,505 MB)错误。
我对结果感到困惑。我检查了构建目录,发现 VS 2010 没有编译mycalss.cpp!所有其他三个构建目录都有.obj文件 或.o文件的myclass。所以当链接时,错误发生了。
我的系统是Windows7 64位旗舰版。有谁知道如何解决这个问题?
答案 0 :(得分:1)
如果您向项目添加新文件(类),请通过上下文菜单手动调用“运行qmake”项目。此操作会创建新的“生成文件”,现在包含新添加的文件。当* .pro文件发生更改时,必须自动执行所有这些操作。
由于哪个原因在这个版本中不能自动工作Qt我不知道(((。