一个简单的 qt 程序未运行并显示“分段错误”的错误消息

Posted

技术标签:

【中文标题】一个简单的 qt 程序未运行并显示“分段错误”的错误消息【英文标题】:A simple qt program not running with error message saying "segmentation fault" 【发布时间】:2014-04-08 22:32:19 【问题描述】:

编译成功,但是当我运行它时,终端给了我“分段错误(核心转储)”消息。我使用的编译器是 Ubuntu 上的 g++。

代码是:

#include <QApplication>
#include <QLabel>
#include <QLineEdit>
#include <QVBoxLayout>
#include <QWidget>

int main(int argc, char** argv)
  QApplication app(argc, argv);

  QWidget window;
  QLabel *label = new QLabel;
  QLineEdit *edit = new QLineEdit;
  QObject::connect(edit, SIGNAL(textChanged(const QString&)), label, SLOT(setText(const QString&)));

  QVBoxLayout *layout;
  layout->addWidget(edit);
  layout->addWidget(label);
  window.setLayout(layout);

  window.show();


  return app.exec();

【问题讨论】:

【参考方案1】:

QVBoxLayout *layout 未初始化,您使用的是未初始化的指针。

正确方法:

QVBoxLayout *layout = new QVBoxLayout;
// use layout..

http://qt-project.org/doc/qt-4.8/qvboxlayout.html

【讨论】:

以上是关于一个简单的 qt 程序未运行并显示“分段错误”的错误消息的主要内容,如果未能解决你的问题,请参考以下文章

调试应用程序分段错误?编译器的错?

简单的 C++ OpenCV imshow 示例因分段错误而崩溃

尝试显示窗口时出现 Qt 错误分段错误

在使用 Qt 创建者创建一个非常简单的项目时遇到 Qt 中的“分段错误”

简单的 PyQt5 QML 应用程序导致分段错误

Azure Linux Web 应用程序(节点)崩溃并显示消息:“分段错误(核心转储)”并重新启动