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 및 "<<" 앞에 TAB을 추가하면 다른 라인 번호에서 불평합니다. 그래서 컴파일러 옵션에 문제가 있다고 생각합니다. 누군가 작동 방법을 안내해 줄 수 있습니까?
정말 감사합니다
해결책
방금 내 컴퓨터에서 예제 작업을 수행했습니다.코드는 아래와 같지만 최소한 몇 가지 실수가 있습니다.
QApplication과 반대되는 것처럼 보이는 것처럼 응용 프로그램으로 QMainWindow를 사용합니다.그것은 컴파일되지 않을 것입니다.
각각 QMainWindow 대신 QApplication을 포함해야 합니다.
기본 함수의 첫 번째 문 다음에 세미콜론이 누락되었습니다.
당신은
QLabel
불필요하게 힙에.이 특정 시나리오에서는 간단한 스택 개체일 수 있습니다.qmake 호출을 다음과 같이 사용합니다.
qmake -foo
그냥보다는qmake
또는make foo
.Windows 명령 프롬프트에서 "make"를 사용하려고 합니다.
nmake
또는jom
.Visual Studio 및 MSVC를 사용하는 경우 mingw, cygwin 및 기타 항목과 혼합하지 마십시오.그냥 nmake를 사용하세요. 그렇지 않으면 후자의 옵션으로 make를 사용하세요.
메인.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