では、Qt Creatorもあります。私は、[プロジェクト]->[アプリケーション]->[Qt GUIアプリケーション]で、最も基本的なアプリケーションを作成してみました。プロジェクトは正常に作成されました。さらに、私がそれをコンパイルしたとき、それはうまく機能しているように見えました。
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に非常に慣れていません。
要求に応じて、ここに私のコードがあります: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
、、ヘッダー、ソース、およびフォームフォルダーがあります。一方toy clock
、.qmlproject
ファイルとqmlフォルダがあります。また、同じ場所で同じバックトレースで失敗します。私は実際にはこれらのことについてあまり知りませんが、うまくいけばそれが解決策を見つけるのに役立つでしょう。