문제

작은 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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top