본문 바로가기

개발/Qt

[Qt] QMAKE 프로젝트 파일(.pro)

728x90
반응형

프로젝트 파일은 프로젝트의 속성을 정의하기 위한 파일.

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

 

728x90

'개발 > Qt' 카테고리의 다른 글

[Qt] Hello World 출력(Window)  (0) 2021.10.27
[Qt] Hello World 출력(Console)  (0) 2021.10.27
[Qt] 다운로드 및 설치(Windows 10)  (0) 2021.10.26