명령 줄 qmake -query
의 출력을 보았습니까 ...? 내 시스템에서
은 (명확성을 위해 출력의 대부분을 제거) 제공합니다 이전 버전의
~ sez$ env PATH=$HOME/build/qt5/qtbase/bin qmake -query
QT_SYSROOT:
QT_INSTALL_PREFIX:/usr/local/Qt-5.2.0
QT_INSTALL_DATA:/usr/local/Qt-5.2.0
QT_INSTALL_HEADERS:/usr/local/Qt-5.2.0/include
QT_INSTALL_LIBS:/usr/local/Qt-5.2.0/lib
QMAKE_SPEC:macx-clang
QMAKE_VERSION:3.0
QT_VERSION:5.2.0
그것 덜 장황. 다음과 같이 개별 변수를 쿼리 할 수 있습니다.
~ sez$ env PATH=$HOME/build/qt5/qtbase/bin qmake -query QT_INSTALL_HEADERS
/usr/local/Qt-5.2.0/include
이렇게하면 필요한 작업을 수행 할 수 있습니까? Qt가 빌드 될 때 make install
에 의해 파일이 설치된 위치를보고한다는 점에 유의하십시오. 즉, Qt를 빌드했지만 "make install"을 실행하지 않으면 qmake -query의 결과가 유용한 대답을 제공하지 못합니다.
소스에서 빌드 한 다음 해당 빌드 디렉토리에서 사용하려면 ./configure -prefix=$PWD
을 실행 한 다음 make install
을 실행해야합니다.
편집 :
내 qmake를 중 하나가 메이크 파일 생성을 위해 나는이 -
INCPATH = -I/usr/지방/Qt를-5.2.0/mkspecs/macx-그 소리의 -I/사용자/sez/depot/plistinator/src -I/usr/local/Qt-5.2.0/lib/QtWidgets.framework/Versions/5/Headers -I/usr/local/Qt-5.2.0/lib/QtXml.framework/버전/5/헤더 -I/usr/local/Qt-5.2.0/lib/QtGui.framework/버전/5/헤더 -I/usr/local/Qt-5.2.0/lib/QtCore.framework/Versions/5/헤더 -I. -I/Applications/Xcode.app/Contents/개발자/플랫폼/MacOSX.platform/개발자/SDKs/MacOSX10.9.sdk/시스템/라이브러리/프레임 워크/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode .app/Contents/Developer/Platforms/MacOSX.platform/개발자/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers -I. -나는. -F/usr/지방/Qt를-5.2.0/lib에 Qt를 모듈은 예를 들어 지정되어있는
이 의존은
QT += widgets xml
정보는 어떤 환경을 사용하여 위 INCPATH를 재구성 할 수 있음을 감안할 때 의 자동화 다시, 수 있습니다 하나의 bash 쉘의 표현 부분에 대한 예 '
XML_INC=$(qmake -query QT_INSTALL_LIBS)/QtXml.framework/Versions/5/Headers
mkspecs 당신이 할 수있는 등 얻으려면
MKSPEC_INC=$(qmake -query QT_INSTALL_PREFIX)/mkspecs/$(qmake -query QMAKE_SPEC)
SDK의 GL 경로는 항상 Qt에 포함되므로 gcc -v
의 출력을 캡처하여 구성 할 수 있습니다.
그런 다음 모든 * _INC vars를 최종 결과로 결합하십시오.
이 스크립트의 전체 내용은이 답변의 범위를 벗어나지 만이 방법을 사용하면 도움이 될 것이라고 생각합니다. 나는 실제로 Makefile을 생성하지 않고 원하는 것을 쉽게 할 수있는 방법을 생각할 수 없다.
출처
2014-03-03 05:38:33
Sez
[CMake] (https://qt-project.org/quarterly/view/using_cmake_to_build_qt_projects)를보십시오. 프로젝트를보다 효율적으로 제어 할 수 있습니다. – yegorich