我尝试使用QwtPlot,但是当我将此行添加到MainWindow.cpp
QwtPlot *plot = new QwtPlot(QwtText("Demo"), this);
应用程序编译和链接没有错误,但是当我尝试运行它时,我得到了
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff514227c in ?? () from /usr/lib/libQtGui.so.4
没有任何回溯。我的.pro
文件:
INCLUDEPATH += /usr/include/qwt
CONFIG += qwt
LIBS += -lqwt
我正在使用Qwt 6.0.2,Qt Creator 2.7.0并安装了Qt 4.8.4和5.0.2。
当我创建“Qt Gui应用程序”(没有.ui文件)并且只是这段代码时,错误也会出现:
qwt-test.pro
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = qwt-test
TEMPLATE = app
INCLUDEPATH += /usr/include/qwt
CONFIG += qwt
LIBS += -lqwt
SOURCES += main.cpp\
MainWindow.cpp
HEADERS += MainWindow.hpp
的main.cpp
#include "MainWindow.hpp"
#include <QApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
qDebug() << "main";
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
MainWindow.hpp
#ifndef MAINWINDOW_HPP
#define MAINWINDOW_HPP
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
};
#endif // MAINWINDOW_HPP
MainWindow.cpp
// MainWindow.cpp
#include "MainWindow.hpp"
#include <qwt_plot.h>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QwtPlot *plot = new QwtPlot(QwtText("Demo"), this);
}
MainWindow::~MainWindow()
{
}
谢谢!
答案 0 :(得分:3)
这是Qt Creator的一个问题(或者Qwt与Qt 5不兼容),它认为qmake为Qt 4的Qmake,但它是Qt 5.修复了选项中的版本 - &gt;构建和运行 - &gt; Qt版本和使用Qt 4为项目修复了segfault。