1

Qt の学習を始めたばかりで、Hello World の簡単なプログラムをコンパイルして実行しようとしました。プログラムは問題なくビルドされ、この出力がcompiler output

開始: /qtbuild/bin/qmake /home/ved/Qt/train1/train1.pro -spec /qtbuild/mkspecs/qws/linux-arm-g++ -r CONFIG+=debug
コード 0 で終了しました。
開始: /usr/bin/make -w
make: ディレクトリ `/home/ved/Qt/train1' に入ります
make: 「最初」は何もしません。
make: ディレクトリ `/home/ved/Qt/train1' を離れます
コード 0 で終了しました。

しかし、プログラムを実行しようとすると、これだけが表示されます:

/home/ved/Qt/train1/train1 を開始しています...
/home/ved/Qt/train1/train1 がコード 255 で終了しました

私のコード:

#含む
#含む
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QLabel *label = new QLabel("Hello World!!!");
    label->show();
    a.exec(); を返します。
}

私は Qt の構築手順にまったく慣れていないため、何が問題なのか理解できません。

アップデート

に変更QCoreApplicationしてみましたQApplication。変化なし。

プロジェクトtrain1のビルドステップを実行しています...
開始: /qtbuild//bin/qmake /home/ved/Qt/train1/train1.pro -spec /qtbuild/mkspecs/qws/linux-arm-g++ -r CONFIG+=debug
コード 0 で終了しました。
開始: /usr/bin/make -w
make: ディレクトリ `/home/ved/Qt/train1' に入ります
arm-linux-g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/qtbuild/mkspecs/qws/linux-arm-g++ -I. -I/qtbuild/include/QtCore -I/qtbuild/include/QtNetwork -I/qtbuild/include/QtGui -I/qtbuild/include -I. -I/usr/local/tslib-arm/include -o main.o main.cpp
/qtbuild/include/QtCore/qobject.h:48 からインクルードされたファイルで、
/qtbuild/include/QtCore/qiodevice.h:46 から、
/qtbuild/include/QtCore/qxmlstream.h:45 から、
/qtbuild/include/QtCore/QtCore:3 から、
main.cpp:1 から:
/qtbuild/include/QtCore/qstring.h:91: 注: GCC 4.4 で「va_list」のマングリングが変更されました
arm-linux-g++ -Wl,-rpath,/qtbuild/lib -o train1 main.o -L/usr/local/tslib-arm/lib -L/qtbuild//lib -lQtGui -L/qtbuild//lib - L/usr/local/tslib-arm/lib -lQtNetwork -lQtCore -lpthread
make: ディレクトリ `/home/ved/Qt/train1' を離れます
コード 0 で終了しました。

Qt 4.6.3 を使用しています。

4

7 に答える 7

1

GUIでプロジェクトをビルドしたいことをQtに伝える必要があります。プロジェクトの .pro ファイルを開き、行を変更します

QT += ...

QT += core gui

例、.pro ファイル:

QT       += core gui

TARGET = untitled1
TEMPLATE = app
SOURCES += main.cpp

main.cpp:

#include <QtGui/QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QLabel lbl("hello world");
    lbl.show();
    return a.exec();
}
于 2013-06-27T12:03:04.900 に答える
0

ラベルを表示する場合は、ウィンドウを作成する必要があります。基本的には次のようなものです(テストされていません):

QMainWindow* win = new QMainWindow();
QLabel *label = new QLabel(win, "Hello World!!!");
label->show();
win->show();
于 2013-06-27T09:55:35.550 に答える
0

Qt GUIアプリケーションをコンパイルするプロジェクト構成で設定する必要があります。QCoreApplication の代わりに QApplication を使用するだけでは不十分です。私はあなたの IDE を知らないので、「ハウツー」を提供することはできませんが、必要なオプションを簡単に見つけることができると信じています。eapmle の場合、MSVC では、プロジェクトの作成時に必要なアプリケーションの種類 (コンソールまたは GUI) を設定します。

また、いくつかのエラーで終了コード 255 が表示されます。終了コードは、手動で変更する場合を除き、ゼロにする必要があります。

于 2013-06-27T10:56:42.143 に答える
0

QCoreApplicationメインウィンドウをQApplication追加するように変更

QApplication a(argc, argv);
QMainWindow* mainWin = new QMainWindow();
QLabel *label = new QLabel(mainWin, "Hello World!!!");
mainWin->setCentralWidget(label);
mainWin->show();
于 2013-06-27T09:59:40.033 に答える