簡體   English   中英

Qt Creator錯誤代碼-1073741819

[英]Qt Creator error code -1073741819

好吧,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

有問題的文件是第132行的qatomici386.h ,具體的功能是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的新手。

根據要求,這是我的代碼:mainwindow.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

mainwindow.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文件和一個.qmlproject文件夾。 它也在具有相同回溯的相同位置處失敗。 我實際上並不了解任何這些事情,但希望它有助於找到解決方案。

在安裝完整個環境后,我遇到了同樣的問題。

我一直在搜索,Qt bug跟蹤器上似乎有一個錯誤: https//bugreports.qt.io/browse/QTCREATORBUG-7653

從頁面:

mingw有多個二進制不兼容的版本。 你需要為qt和你的程序使用相同的[1] mingw>版本。 這意味着要么用你的mingw版本編譯qt,要么使用與編譯二進制qt包相同的內容。(我不確定,但這可能比ftp://ftp.qt.nokia.com更新/misc/MinGW-gcc440_1.zip

[1]同樣在ABI意義上

比較我的一些(繼承的)Qt應用程序和這個Qt教程 ,我注意到MainWindow的初始化程序有所不同。 它可能只是一個約定,但這些源顯示MainWindow直接繼承Ui類,然后直接調用setupUi(this);

所以,這會將你的mainwindow.cpp重新mainwindow.cpp為:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
    setupUi(this);
}

您沒有包含mainwindow.h ,但類定義應如下所示:

class MainWindow : public QMainWindow, private Ui::MainWindow
{
//...

我也有同樣的問題,只需重新啟動Windows,問題就解決了,真的很奇怪,但它對我有用。

請幫助!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM