Qt程序无法编译/有运行时错误(IDE:CodeBlocks / QtCreator)

时间:2012-12-20 14:57:06

标签: c++ qt codeblocks

我是Qt的新手。虽然我已经安装了4.8.3很长时间,但我昨天开始编写我的第一个Qt程序。我在Windows环境下,并使用CodeBlocks作为我的C ++代码。

我按照Qt编程的书,试图重现这本书的例子。问题出现在第二章,当需要单独编译时。我从来没有成功地使用CodeBlocks进行单独编译,这次也没有例外:我仍然收到“对XXX的未知引用”。

我尝试在线查找所有说明但我仍然无法解决(设置qmake,链接等)特别是当我使用qmake并将makefile标记为自定义时,每当我编译我的程序时,CodeBlocks告诉我,项目尚未建成;当我单击“是”来构建程序时,弹出相同的“未构建”通知,并重复该过程。

我曾经怀疑我的Qt出了问题,所以我删除了它并安装了最新的(Qt5.0)。但我无法使用它,因为CodeBlocks只支持Qt4,而我的编译器不支持Qt5。

所以我试着下载“旧的”,4.8.4。然后事实证明我甚至无法编译单文件程序(我的意思是整个项目中的一个.cpp文件,没有自定义标题)。我尝试了默认的CodeBlock 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可以编译程序,但现在程序崩溃,不像昨天程序运行正常。)

更新 - 现在问题是运行时错误。

1 个答案:

答案 0 :(得分:0)

好的,让我们回顾一下,并在评论后停止连接评论。

对于您的第一个问题,我们清除了以前任何编译的构建文件夹,只留下了所需的文件,即:.cpp文件,.h/hpp文件和.pro文件(以及您可能需要的任何资源文件,本例不是这种情况。)

然后从终端/ cmd手动编译 ,您可以构建项目:

qmake.exe -project <PATH_TO_NEEDED_FILES>
qmake
make

现在,关于运行时错误和Entry Point Not Found的第二个问题...... 好吧,我很无能为力。稍微谷歌我发现Entry Point错误的最常见原因是Qt链接旧版本的dll:

Entry Point Error 1

Entry Point Error 2

Entry Point Error 3

在第二个链接中,通过将Qt路径设置为Windows PATH中的第一个路径来解决问题。也许这有帮助。

让我们希望有经验的人有所帮助!!