Qt Creator 错误代码 -1073741819
Posted
技术标签:
【中文标题】Qt Creator 错误代码 -1073741819【英文标题】:Qt Creator error code -1073741819 【发布时间】:2012-12-18 19:26:20 【问题描述】:好的,Qt Creator 也是如此,我尝试在 Projects->Applications->Qt Gui Applications 下创建最基本的应用程序。项目已成功创建。此外,当我编译它时,它似乎工作得很好。
11:07:38: Running steps for project Test1...
11:07:38: Configuration unchanged, skipping qmake step.
11:07:38: Starting: "C:\MinGW\bin\mingw32-make.exe"
C:/MinGW/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'C:/Users/User/CProjects/Test1-build-Windows7Desktop-Debug'
mingw32-make[1]: Nothing to be done for 'first'.
mingw32-make[1]: Leaving directory 'C:/Users/User/CProjects/Test1-build-Windows7Desktop-Debug'
11:07:39: The process "C:\MinGW\bin\mingw32-make.exe" exited normally.
但是,当我尝试运行它时,我得到了这个:
Starting C:\Users\User\CProjects\Test1-build-Windows7Desktop-Debug\debug\Test1.exe...
The program has unexpectedly finished.
C:\Users\Hunter\User\Test1-build-Windows7Desktop-Debug\debug\Test1.exe exited with code -1073741819
每次。我开始一个新项目,我做任何事情,但我得到了那个错误。现在,我也以调试模式运行。我收到此错误:
The inferior stopped because it received a signal from the Operating System.
Signal name: SIGSEGV
Signal meaning: Segmentation fault
违规文件是qatomici386.h
在第132行,具体功能是QBasicAtomicInt::deref
,其中指出:
inline bool QBasicAtomicInt::deref()
unsigned char ret;
asm volatile("lock\n"
"decl %0\n"
"setne %1"
: "=m" (_q_value), "=qm" (ret)
: "m" (_q_value)
--> : "memory");
return ret != 0;
我已经用箭头标出了第 132 行。 我正在运行一台 64 位机器,但我相信我安装了 32 位 MinGW ......但老实说,我什至不知道这是否是真正的问题,更不用说如何解决它了。我对 C++ 和 Qt 很陌生。
根据要求,这是我的代码: 主窗口.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
ui->setupUi(this);
MainWindow::~MainWindow()
delete ui;
main.cpp:
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
Test1.pro:
#-------------------------------------------------
#
# Project created by QtCreator 2012-12-17T23:06:31
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = Test1
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
主窗口.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui
class MainWindow;
class MainWindow : public QMainWindow
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
;
#endif // MAINWINDOW_H
如果还需要什么,尽管问。
这是完整的调试回溯:
0 QBasicAtomicInt::deref qatomic_i386.h 132 0x402774
1 QString::~QString qstring.h 880 0x402805
2 WinMain@16 qtmain_win.cpp 93 0x401eab
3 main 0x402e6b
更新:我运行了示例 toy clock
,它运行良好。但是,当我运行calculator form
时,它导致了完全相同的错误。我注意到calculator form
是正常的项目形式:它有一个.pro
,以及Header、Sources 和Forms 文件夹。另一方面,toy clock
只有一个 .qmlproject
文件和一个 qml 文件夹。它也在相同的位置以相同的回溯失败。我实际上对这些事情知之甚少,但希望它能帮助找到解决方案。
【问题讨论】:
您可以放心地假设 Qt 代码是合理无错误的。更有用的是你的代码。 嘿。好的,但正如我所说,这只是默认设置。 选择一个调试版本,在调试器中运行您的应用程序,然后查看完整的回溯/在此处发布。 我确实发布了最后的错误,我想我可以添加其余的回溯...... 您的代码似乎在 Qt 4.8.3 (OSX 10.6.8) 上运行良好。它一定是你的环境。 【参考方案1】:我在安装整个环境后也遇到了同样的问题。
我一直在四处寻找,Qt 错误跟踪器上似乎有一个错误: https://bugreports.qt.io/browse/QTCREATORBUG-7653
从页面:
mingw 有多个不兼容的二进制版本。您需要为 qt 和您的程序使用相同的[1] mingw >version。这意味着要么自己使用 >mingw 版本编译 qt,要么使用与编译二进制 qt 包相同的版本。(我不确定,但可能比 ftp://ftp.qt.nokia.com/misc/MinGW-gcc440_1.zip 更新)
[1] ABI 意义上的相同
【讨论】:
我发现了同样的错误报告,所以我检查以确保我只有一个 MinGW 安装,并且 Qt Creator 只使用它。我愿意,而且确实如此。 D: 啊,是的。我读到了,因为我必须自己编译 Qt 版本,或者切换到用于编译我下载的版本的 mingw 版本。 哦。我......可能误读了,这很可能是解决方案。在某些时候,我将不得不尝试用我的版本重新编译 Qt,看看它是否有效。让我知道它是否适合您。 是的,这行得通。只是构建 Qt 是我曾经不得不处理的最大的痛苦之一 我在尝试重新编译时遇到了可怕的问题,现在我坚持使用 linux。多么痛苦。【参考方案2】:比较我的一些(继承的)Qt 应用程序和这个Qt tutorial,我注意到MainWindow
的初始化程序有所不同。这可能只是一个约定,但这些来源显示MainWindow
直接继承了Ui 类,然后直接调用setupUi(this);
。
因此,这会将您的 mainwindow.cpp
重新调整为:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
setupUi(this);
您没有包含mainwindow.h
,但类定义应如下所示:
class MainWindow : public QMainWindow, private Ui::MainWindow
//...
【讨论】:
OP 正在使用the multiple ways to use a designing UI file 之一您的示例是继承方法。 OP 正在做“使用指针成员变量” 我包含了 .h。这是他们的默认模板,无需我添加任何未运行的内容。我想假设他们的模板代码没问题,但这意味着问题在于更令人讨厌和晦涩的东西。【参考方案3】:我也有同样的问题,重启windows就解决了,真的很奇怪,但对我有用。
希望这个帮助!!
【讨论】:
以上是关于Qt Creator 错误代码 -1073741819的主要内容,如果未能解决你的问题,请参考以下文章
Qt creator 编译错误 :cannot find file .pro qt
使用 OpenCV 库(ubuntu)编译错误 Qt Creator