Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt创建者错误代码-1073741819_C++_Qt_Mingw_Qt Creator - Fatal编程技术网

C++ Qt创建者错误代码-1073741819

C++ Qt创建者错误代码-1073741819,c++,qt,mingw,qt-creator,C++,Qt,Mingw,Qt Creator,好的,我和QtCreator也试着在Projects->Applications->QtGUI应用程序下创建最基本的应用程序。项目已成功创建。此外,当我编译它时,它似乎工作得很好 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:/Min

好的,我和QtCreator也试着在Projects->Applications->QtGUI应用程序下创建最基本的应用程序。项目已成功创建。此外,当我编译它时,它似乎工作得很好

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.</P>非常陌生。 根据要求,以下是我的代码: 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();
}
主窗口

#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
更新:我运行了示例
玩具时钟
,它运行得很好。然而,当我运行
计算器窗体时,它产生了完全相同的错误。我注意到,
计算器表单
是正常的项目表单:它有一个
.pro
,以及标题、源和表单文件夹。另一方面,玩具钟只有一个
.qmlproject
文件和一个qml文件夹。它也会在具有相同回溯的相同位置失败。我对这些事情其实不太了解,但希望它能帮助找到解决方案。

比较我的一些(继承)Qt应用程序,我注意到
main窗口的初始化器有一个不同。这可能只是一种约定,但这些源代码显示直接继承Ui类的
MainWindow
,然后直接调用
setupUi(此)

因此,这将使您的
mainwindow.cpp
重新工具化:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
    setupUi(this);
}
您没有包括
mainwindow.h
,但类定义应该如下所示:

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

在安装了整个环境之后,我也遇到了同样的问题

我一直在四处搜索,Qt bug追踪器上似乎有一个bug,位于:

从页面:

mingw有多个二进制不兼容的版本。qt和程序都需要使用相同的[1]mingw>版本。这意味着要么自己使用该>mingw版本编译qt,要么使用与编译二进制qt包相同的版本编译qt。(我不确定,但这可能比)

[1] 在ABI的意义上也是如此


我也有同样的问题,只需重新启动windows,问题就解决了,真的很奇怪,但它对我有效


帮个忙

您可以安全地假设Qt代码是合理的无错误的。更有用的是你的代码。好的,但正如我所说的,这只是默认值。选择一个调试版本,在调试器中运行应用程序,然后查看完整的回溯/在这里发布。我确实发布了最后一个错误,我想我可以添加其余的回溯…您的代码在Qt 4.8.3(OSX 10.6.8)上对我来说似乎工作得很好。这一定是您的环境。OP使用的示例之一是继承方法。OP正在执行“使用指针成员变量”,我包括了.h。这是他们的默认模板,无需我向其中添加任何未运行的内容。我想假设他们的模板代码是正确的,但这意味着问题在于更令人讨厌和模糊的东西。我发现了相同的错误报告,所以我检查以确保我只有一个MinGW安装,并且Qt创建者只使用它。是的,的确如此。D:啊,是的。我读到这篇文章,因为我要么自己编译Qt版本,要么切换到用于编译我下载的版本的mingw版本。我可能误解了这一点,这很可能是解决办法。在某个时候,我将不得不尝试用我的版本重新编译Qt,看看它是否有效。让我知道它是否对你有效。所以是的,它起作用了。只是构建Qt是我曾经遇到过的最大难题之一,我在尝试重新编译时遇到了可怕的问题,现在我仍然坚持使用linux。多痛苦啊。
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
    setupUi(this);
}
class MainWindow : public QMainWindow, private Ui::MainWindow
{
//...