>

QT를 시작하려고합니다. 구체적으로 "Hello, world!" 이 기본 자습서의 데스크톱 응용 프로그램 : 명령 줄에서 시작하기

.cpp 파일의 이름은 helloX.cpp이며 다음 내용이 포함됩니다 :

#include <QtGui>
int main(int argc, char **argv) {
 QApplication app(argc, argv);
 QLabel label("Hello, world!");
 label.show();
 return app.exec();
}

여기서 make를 실행할 때 발생하는 수많은 오류가 있으며 어디에서나 이러한 오류에 대한 참조를 찾을 수 없습니다! 문제 해결에 도움을 주시면 감사하겠습니다.

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -O2 -std=gnu++11 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.9 -Wall -W -fPIC -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -I. -I/Users/hassanshallal/anaconda/include/qt -I/Users/hassanshallal/anaconda/include/qt/QtGui -I/Users/hassanshallal/anaconda/include/qt/QtCore -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/AGL.framework/Headers -I/Users/hassanshallal/anaconda/mkspecs/macx-clang -o helloX.o helloX.cpp
helloX.cpp:4:15: error: variable has incomplete type 'QApplication'
 QApplication app(argc, argv);
              ^
/Users/hassanshallal/anaconda/include/qt/QtCore/qobject.h:452:18: note: forward declaration of
      'QApplication'
    friend class QApplication;
                 ^
helloX.cpp:5:2: error: use of undeclared identifier 'QLabel'; did you mean 'QAccessible::Label'?
 QLabel label("Hello, world!");
 ^~~~~~
 QAccessible::Label
/Users/hassanshallal/anaconda/include/qt/QtGui/qaccessible.h:360:9: note: 'QAccessible::Label' declared
      here
        Label         = 0x00000001,
        ^
helloX.cpp:5:8: error: expected ';' after expression
 QLabel label("Hello, world!");
       ^
       ;
helloX.cpp:5:9: error: use of undeclared identifier 'label'
 QLabel label("Hello, world!");
        ^
helloX.cpp:6:2: error: use of undeclared identifier 'label'
 label.show();
 ^
helloX.cpp:5:2: warning: expression result unused [-Wunused-value]
 QLabel label("Hello, world!");
 ^~~~~~
1 warning and 5 errors generated.
make: *** [helloX.o] Error 1

많이 감사합니다


  • 답변 # 1

    <올>

    qmake가 경로에 있어야합니다. 터미널에서 export PATH=<path to qmake exe>;$PATH

    자습서에 명시된대로 .pro 파일을 올바르게 설정해야합니다.

    2a. INCLUDE+= 와 함께  qt 헤더의 올바른 포함 경로 추가

    2b. Qt+= 와 함께  사용할 라이브러리를 추가하십시오. 간단한 예를 들어gui위젯은 괜찮습니다.

    프로젝트 루트로 이동하여 참조하는 자습서에 명시된대로qmakemake를 실행하십시오.

    QApplication, QLabel 등과 같이 앱에서 사용하는 모든 위젯의 헤더를 포함해야합니다.

  • 답변 # 2

    Qt 애플리케이션에 올바른 포함 파일이 있고 빌드 환경이 모든 Qt 라이브러리를보고 링크 할 수 있는지 확인해야합니다. 이러한 오류는 컴파일러가 사용중인 Qt API를 찾을 수 없기 때문에 발생합니다.

  • 답변 # 3

    피드백에 감사드립니다. 필요한 것은 다음과 같습니다.

    1) add #include <QApplication> to the .cpp file
    2) add #include <QLabel> to the .cpp file
    3) add: QT += widgets to the .pro file
    
    

    이 모든 문제를 해결했습니다.

    최고,

관련 자료

  • 이전 dataframe - R의 for 루프에서 새 열을 반복적으로 채 웁니다
  • 다음 c# - sql exception - nvarchar 값 '[anyvalue]'를 데이터 유형 int로 변환 할 때 변환에 실패했습니다