質問

私は小さなQTアプリケーションを作り、Windowsのコマンドプロンプトを実行しようとしています:

#include <QMainWindow>
#include <QLabel>

int main(int argc,char* argv[])
{
    QMainWindow a(argc,argv)
    QLabel *NewLabel = new QLabel("Hi i am a label");
    NewLabel->show();
    return a.exec();
}
.

qmake -projectを実行した後 そしてqmake -TestPrg.pro その後、makeを試してください。ここでは、次のエラーで失敗します。

D:\TestPrg>make
make -f Makefile.Debug
make[1]: Entering directory `D:/TestPrg'
Makefile.Debug:58: *** missing separator.  Stop.
make[1]: Leaving directory `D:/TestPrg'
make: *** [debug] Error 2
.

makefile.debug、行番号58を見て「<<」の前にタブを追加する場合、それは他の行番号に不満を言っています。コンパイラのオプションに問題があると感じます。

ありがとうございました

役に立ちましたか?

解決

私は私のマシンに一例を作っただけです。コードは以下のとおりですが、少なくともいくつかの間違い、すなわち:

  • Qapplicationとは対照的になるように、アプリケーションであるため、QMainWindowを使用します。それはコンパイルされるつもりはありません。

  • それぞれQmainWindowではなくQApplicationを含める必要があります。

  • 主な関数の最初のステートメントの後にセミコロンを見逃す。

  • ヒープ上にQLabelを接続しています。この特定のシナリオでは、それは単純なスタックオブジェクトです。

  • qmake -fooまたはqmakeだけではなく、make fooとして呼び出しQmakeを使用します。

  • nmakeまたはjomとは対照的に、Windowsコマンドプロンプトで "make"を使用しようとしています。 Visual StudioとMSVCを使用する場合は、MingW、Cygwinなどのものと混ぜないでください。 NMAKEを使用するだけで、そうでない場合は、後者のオプションにmakeを使用してください。

main.cpp

#include <QApplication>
#include <QLabel>

int main(int argc, char **argv)
{
    QApplication a(argc, argv);
    QLabel NewLabel("Hi i am a label");
    NewLabel.show();
    return a.exec();
}
.

main.pro

TEMPLATE = app
TARGET = main
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
SOURCES += main.cpp
.

ビルドと実行

* qmake
* nmake
* main.exe
.
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top