【问题标题】:QApplication Crashing on Constructor callQApplication在构造函数调用时崩溃
【发布时间】:2021-11-27 15:57:42
【问题描述】:

我有一个非常基本的 QT 应用程序。使用 QT 5.9.1。

在我的主要方法的第一行:

int main(int argc, char * argv[]){
   QApplication a(argc, argv);
}

我对 QApplication 构造函数的调用崩溃了。

我尝试在 VS Code 中的 gdb 调试器中启动它,但是因为我没有“QApplication.cpp”,我无法单步执行构造函数调用。我真的找不到任何其他回溯信息。如果我只是在终端中启动 GDB,我无法让应用程序看到 Windows 平台 DLL

还有其他方法可以调试吗?我不明白为什么会这样,但我没有想法......我

【问题讨论】:

  • 添加你得到的错误
  • @DanielNudelman 问题是我没有收到错误.. 或者无论如何都看到它.. 它只是崩溃:/
  • 也许您的二进制目录中没有平台或插件文件夹。虽然在这种情况下你应该得到一个弹出对话框。
  • 也许我会说是错的,但如果你真的return a.exec() 它仍然崩溃吗?

标签: c++ qt visual-studio-code cmake qt5


【解决方案1】:

同样的代码也适用于我。

我可以建议您尝试一个完整的最小示例吗?

int main(int argc, char * argv[])
{
    QApplication a(argc, argv);
    return a.exec();
}

如果这不起作用,重新安装 Qt 库似乎是最明显的故障排除方法。头文件和/或库之间可能存在一些不匹配。

【讨论】:

  • 呃。我想这可能是我的下一步……那行不通!
【解决方案2】:

您可能遇到插件问题或其他安装问题。在运行时(在终端中)定义此环境变量。

$ QT_DEBUG_PLUGINS=1 ./myapp

如果这没有提供任何有用的信息,您可以尝试在strace 下运行您的应用程序,这样您就可以看到它正在尝试访问哪些文件,以及是否有任何提供提示的可疑系统调用:

$ strace ./myapp

【讨论】:

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