我是Qt的新手。虽然我已经安装了4.8.3,但是我昨天开始编写我的第一个Qt程序。我在Windows环境下,并为我的C++代码使用CodeBlocks。Qt程序无法编译/有运行时错误(IDE:CodeBlocks/QtCreator)
我跟着关于Qt编程的书,并试图重现本书的例子。问题出现在第二章,当时需要单独编译。我从来没有成功地与CodeBlocks分开编译过,这次也没有例外:我仍然收到“未知的XXX引用”。
我试图在网上找到的所有指示,但我还是没能解决它(设置QMAKE,链接等),特别是当我用QMAKE并标记生成文件自定义一个,每当我编译了一个程序,代码块告诉我,该项目尚未建成;当我点击“是”来构建程序时,弹出了相同的“未建好”通知,并且重复该过程。
我曾经怀疑我的Qt出了问题,所以我删除它并安装了最新版本(Qt5.0)。但我无法使用它,因为CodeBlocks只支持Qt4,而我的编译器不支持Qt5。
所以我试图下载“旧的”,4.8.4。然后事实证明,我甚至无法编译一个单文件程序(我的意思是整个项目中有一个.cpp文件,没有自定义标题)。我尝试了默认的代码块QT程序,该程序是这样的:
#include <QApplication>
#include <QFont>
#include <QPushButton>
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
QPushButton quit("Quit");
quit.resize(75, 30);
quit.setFont(QFont("Times", 18, QFont::Bold));
QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));
quit.show();
return app.exec();
}
只是一个很标准的一个。它应该编译,但它确实,但事情变得更糟:程序无法工作,因为运行时错误在执行后立即发生(错误代码:0xC0000005或-1073741819) 这是我的问题1:我没有线索,什么是线索我可以解决这个问题吗?我不介意删除我的CodeBlocks和Qt,并在重新安装后执行,但我已经尝试过了,没有用处。
我的第二个问题:(解决了这个问题) 然后我尝试使用Qt Creator。当我编译上面显示的简单程序时,我收到了很多关键字“unwind_resume”的错误 - 任何人都可以告诉我如何解决它? (网上评论建议运行qtvar.bat,但它没有帮助;有些人建议建立调试库,我尝试,但意外停止,因为没有足够的内存?)
我的第三个问题:(找到它,而多余的,因为它讨论以上,所以我删除了它)
(我应该首先感谢那些真正阅读我的文章的人,而且我不得不说,虽然提供的信息可能不足以找到解决方案,但这是我所知道的。
更新 - 一些更多的信息:其实我也有类似的CodeBlocks未定义的参考。但我很懒,所以我只是将所有.dll文件从qt文件夹复制到SysWOW64;程序昨天编译并运行,但今天重新安装qt和代码块后,程序崩溃,运行时错误,即使我也复制了新的.dll文件。为了清楚起见:如果我将.dll文件复制到SysWOW64,Codeblocks可以编译程序,但现在程序崩溃,与昨天程序正常运行不同。)
更新 - 现在问题是运行时错误。
调用堆栈?你有没有试过调试它? – neagoegab
有一种方法可以判断CodeBlocks是否有问题:从终端编译程序。我曾经遇到类似的问题(使用QtCreator)并手工编译代码。它进展顺利,这是一个缓存问题。试试这个:'qmake -project'后跟'qmake'和'make'。然后启动二进制文件,看看是否一切按预期进行。我在MingW的Windows上尝试了代码并工作。 –
unwind_resume通常是因为错误的代码块安装或项目,通常项目是责怪。 –