Ok, j'ai Qt Creator et j'ai essayé de créer l'application la plus basique, sous Projets->Applications->Qt Gui Applications. Le projet a été créé avec succès. De plus, lorsque je l'ai compilé, il semblait fonctionner correctement.
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.
Cependant, lorsque j'essaie de l'exécuter, j'obtiens ceci :
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
A chaque fois. Je démarre un nouveau projet, je fais ce que je veux, mais j'obtiens cette erreur. Maintenant, j'ai également exécuté en mode débogage. J'obtiens cette erreur :
The inferior stopped because it received a signal from the Operating System.
Signal name: SIGSEGV
Signal meaning: Segmentation fault
Le fichier incriminé est qatomici386.h
à la ligne 132, et la fonction spécifique est QBasicAtomicInt::deref
qui stipule que
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;
}
J'ai fléché la ligne 132. J'utilise une machine 64 bits, mais je crois que j'ai installé un MinGW 32 bits... mais honnêtement, je ne sais même pas si c'est le vrai problème, et encore moins comment le résoudre si c'est le cas. Je suis très novice en matière de C++ et de Qt.
Comme demandé, voici mon code : 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
Si vous avez besoin de quoi que ce soit d'autre, n'hésitez pas à le demander.
Voici la trace de débogage complète :
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
Mise à jour : j'ai exécuté l'exemple toy clock
et cela a bien fonctionné. Cependant, lorsque j'ai exécuté le calculator form
mais le résultat est exactement le même. Je remarque que le calculator form
se présente sous la forme d'un projet normal : il possède un .pro
et les dossiers En-tête, Sources et Formulaires. Les dossiers toy clock
quant à lui, n'a qu'un .qmlproject
et un dossier qml. Il échoue également au même endroit avec la même trace de retour. Je ne connais pas grand chose à tout cela, mais j'espère que cela aidera à trouver une solution.