WindowsのコマンドプロンプトからQTアプリケーションを実行する
-
21-12-2019 - |
質問
私は小さな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
. 所属していません StackOverflow