프로젝트 파일은 프로젝트의 속성을 정의하기 위한 파일.
ex) 어플리케이션 종류(GUI, Console), 라이브러리, 빌드 설정 등.
대입의 연산이 많이 사용됨.
ex) A = B, A += B, A -= B
주석은 앞에 # 을 붙여서 사용.
여러줄을 사용하려면 줄바꿈 자리에 \ 를 사용.
QT
프로젝트에 사용될 Qt 모듈을 지정.
디폴트 값은 Core, Gui 이며 QtCore 와 QtGui 모듈을 포함한다는 의미.
모듈 종류 : Core, Gui, Network, OpenGL, SVG, XML 등
QT += core gui
TEMPLATE
프로젝트 파일의 타입을 정의. 빌드할 유형을 정의
- 응용 프로그램, 라이브러리 또는 단순 서브 디렉토리일 수 있음.
- 구성 옵션 종류 : app, lib, subdirs, aux, vcapp vclib
TEMPLATE = app # 독립적인 어플리케이션(생략 시 default 값)
TEMPLATE = lib # static lib or shared lip
TEMPLATE = sub dirs # 단순 서브 디렉토리
HEADERS
헤더 파일을 정의
HEADERS += mainwindow.h
SOURCES
소스 파일을 정의
SOURCES += \
main.cpp \
mainwindow.cpp
FORMS
GUI 를 사용할 경우 QTDesigner 로 생성된 window 의 ui 파일.
컴파일 하기 전에 uic 에서 처리할 ui 파일을 지정
UI 파일을 빌드하는데 필요한 모든 종속성, 헤더 및 소스 파일이 프로젝트에 자동으로 추가됨.
Design Mode : Icon 형태의 Object 를 드래그 & 드롭 형태로 Window 를 제작.
Edit Mode : XML 형태로 ui 의 설정을 구성.
FORMS += \
mainwindow.ui
CONFIG
프로젝트 구성 및 컴파일러 옵션을 지정.
CONFIG += c++11
컴파일러 옵션
- stl : STL 지원 활성화
- thread : 스레드 지원 사용 가능.(CONFIG 의 기본값인 qt 가 포함된 경우 활성화)
- release : 릴리즈 모드 빌드
- debug : 디버그 모드 빌드
- debug_and_release : 디버그 및 릴리즈 모드 빌드
TARGET
앱 또는 라이브러리, 실행파일 이름
TARGET = myapp
TARGET = $$qt5LibraryTarget(myplugin, "plugins/$$PLUGIN_TYPE/")
DEFINES
컴파일러 C 전처리기 매크로(-D 옵션)로 추가
DEFINES += USE_MY_STUFF
LIBS
프로젝트에 링크할 라이브러리 목록 지정
unix:LIBS += -L/usr/local/lib - lmath
win32:LIBS += c:/mylibs/math.lib
INCLUDEPATH
프로젝트를 컴파일할 때 검색해야 하는 #include 디렉토리를 지정
전역 헤더 파일의 위치를 찾기 위한 경로 지정. -l 옵션과 같은 역할
INCLUDEPATH = c:/msdev/include d:/stl/include
win32:INCLUDEPATH += "C:/mylibs/extra headers"
unix:INCLUDEPATH += "/home/user/extra headers"
DESTDIR
실행 이미지가 설치된 디렉토리 지정. 기본값은 플랫폼에 따라 다름
리눅스 : 현재 디렉토리에 실행파일이 생성
윈도우 : debug or release 디렉토리 아래 생성
DESTDIR = ../../bin
DEPENDPATH
QMAKE 가 dependency 검색 시 사용되는 경로 지정.
QMAKE 가 소스 코드에 #include 하는 헤더 파일을 크롤링 할 때 사용.
DEPENDPATH = ../../include
SUBDIRS
하위 디렉토리에 있는 .pro 파일을 재귀적으로 호출될 수 있도록 하위 디렉토리 지정
프로젝트의 일부가 포함된 모든 하위 디렉토리 또는 프로젝트 파일의 이름을 지정
- 각 하위 디렉토리에는 자체 프로젝트 파일이 존재해야 함.
현재 프로젝트의 상위 디렉토리 또는 하위 디렉토리 경로만 지정하는게 좋음.
SUBDIRS = kernel \
tools \
myapp
SUBDIRS += my_executable my_library tests doc
my_executable.depends = my_library
tests.depends = my_executable
my_library 가 my_executable 이전에 my_executable 되고 my_executable 이 tests 이전에 빌드되도록 함.
doc 는 다른 하위 디렉토리와 병렬로 빌드할 수 있으므로 빌드 프로세스의 속도가 빨라짐.
RESOURCES
rcc 에 의해 처리되는 실행파일 내에 포함되는 리소스 파일을 정의한 xml 파일 .qrc 를 지정
qrc : QT 자원 콜렉션 파일(The QT Resource Collection System)
RESOURCES = application.qrc
Special Platform
특정 플랫폼일 때 빌드 대상을 설치할 위치 지정.
qnx: target.path = /tmp/$${TARGET}/bin # QNX
else: unix:!android: target.path = /opt/$${TARGET}/bin # Linux
!isEmpty(target.path): INSTALLS += target # 둘다 아닐 경우
target.path : 빌드 대상을 설치할 위치
INSTALLS : 빌드 대상을 설치할 기존 자원 목록에 추가
INSTALLS
make install 또는 이와 유사한 설치 절차가 실행될 때 설치될 리소스 목록을 지정
목록의 각 항목은 일반적으로 설치 위치에 대한 정보를 제공하는 속성으로 정의
target.path += $$[QT_INSTALL_PLUGINS]/imageformats
INSTALLS += target
'개발 > Qt' 카테고리의 다른 글
[Qt] Hello World 출력(Window) (0) | 2021.10.27 |
---|---|
[Qt] Hello World 출력(Console) (0) | 2021.10.27 |
[Qt] 다운로드 및 설치(Windows 10) (0) | 2021.10.26 |