【问题标题】:CodeBlocks Qt HelloWorld.exe has stopped working (C++)CodeBlocks Qt HelloWorld.exe 已停止工作 (C++)
【发布时间】:2015-04-15 09:41:16
【问题描述】:

我是一个初学者“程序员”,我使用引号是因为我是绿色的。

Windows 7 64 位
代码::块 13.12
OpenCV 2.4.10
Qt 4.8.5

我一直致力于单枪匹马地创建一个(对我而言)相当大的软件,该软件使用 OpenCV 和 mingw 来跟踪几个不同标记的移动并计算(并准确猜测......)很多东西.我快完成了,但是我必须在其中加入一些 GUI 元素,最重要的是一个对话框窗口,您可以使用它来查找文件(昨天出现)。所以我尝试使用 Code::Blocks 设置 Qt 并创建一个基本的 Hello World 应用程序。我已经设置了 env Path 变量,我已经将链接器和编译器搜索目录指向了它们应该在的位置。它仍然不起作用。

#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();
}

这就是我想要运行的东西。编译正常,没有错误或警告。但是当我运行它时,它立即停止工作,如“Qt.exe 已停止工作”并且进程返回 -1073741819 ...它在尝试执行特定于 Qt 的操作时崩溃(QApplication ...)

我在QApplication app(argc, argv);之前添加了一个简单的cout &lt;&lt; "Hello world";,它显示在控制台中,然后停止工作。

即使我将代码暴露到
QApplication app(argc, argv); return app.exec();
它仍然以同样的方式崩溃。

我的第一个问题......可能是什么问题?我的想法用完了,谷歌也不想帮助我。我试过使用 Qt Creator,它工作得很好,但我无法让它工作......它只会在控制台中打印“Naci”,不管我试图运行什么项目,而且我有不知道“Naci”是什么以及它来自哪里。
PS:还有一个问题。是否可以创建一个控制台应用程序,该应用程序在某一时刻调用具有 QDialog 窗口并从中获取文件名的函数?

编辑: 我正在尝试运行附加到 Qt 版本的示例。它们都给了我对 vtable 错误的未定义引用,而且我在工作中找不到任何解决方案。耶稣……这对新人不友好 edit2:我要重建和重新配置 Qt...在我的 1ghz 上网本上可能需要一段时间...

【问题讨论】:

  • 我从来没有见过任何 QWidgets 被使用(在你的情况下是按钮)而不将它们放在 QMainWindow 中。我不确定这是否可行,但我建议在小时候创建一个带有按钮的QMainWindow。在示例中也应该是这样的。
  • 关于创建 QDialog 窗口我认为是可能的。对于 Linux,我可以 fork() 控制台应用程序将 QDialog 作为子进程。然后通过pipe() 将文件名发送回父进程“控制台应用程序”,但对于 Windows 可能可以通过CreatProcess()
  • 您是否将 Qt dll 库复制到构建文件夹中?它们是运行任何 Qt 应用程序所必需的。你有波兰语的 QtCreator。在控制台中,它会打印该应用程序已结束,您需要按 Return 以关闭控制台。由于波兰字母“ś”,控制台删除了其余文本“Naciśnij Return aby zamknąć”
  • 您的代码对我有用,但我使用的是 Qt5 和 QtCreator。
  • @firescreamer - 这很有趣。但是,这仍然意味着整个代码都被忽略了,不是吗?复制 dll 库没有帮助。如果它们丢失,错误会不会有所不同?

标签: c++ qt crash codeblocks


【解决方案1】:

我重新配置了 Qt,然后再次通过 MingW 重新构建它。即使经过 6 小时的编译失败,它已经足够了......现在 Qt 可以与 Code::Blocks 一起使用。奇怪的。我以前做过,不知道为什么这次成功了,上次没有。

对于那些不知道怎么做的人,运行命令行(如果在 Windows 上),转到 Qt 的主文件夹(包含、bin、lib(等)文件夹的那个,在我的例子中是 C: \Qt\4.8.5),输入configure.exe(使用configure.exe -help查看可用参数),完成配置后,只需转到mingw32-make并等待一小时或十小时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    相关资源
    最近更新 更多