이 페이지에서

qmake 시작하기

이 튜토리얼에서는 qmake의 기본 사항을 다룹니다. 이 설명서의 다른 항목에는 qmake 사용법에 대한 더 자세한 정보가 포함되어 있습니다.

간단하게 시작하기

애플리케이션의 기본 구현을 막 완료했고, 다음 파일들을 생성했다고 가정해 봅시다:

  • hello.cpp
  • hello.h
  • main.cpp

이 파일들은 Qt 배포판의 ` examples/qmake/tutorial ` 디렉터리에 있습니다. 이 애플리케이션의 구성에 대해 알고 있는 유일한 사실은 Qt로 작성되었다는 점뿐입니다. 먼저, 선호하는 일반 텍스트 편집기를 사용하여 examples/qmake/tutorial 디렉터리에 hello.pro 라는 파일을 만드세요. 가장 먼저 해야 할 일은 개발 프로젝트의 일부인 소스 파일과 헤더 파일을 qmake에 알려주는 줄을 추가하는 것입니다.

먼저 프로젝트 파일에 소스 파일을 추가하겠습니다. 이를 위해서는 SOURCES 변수를 사용해야 합니다. 새 줄을 시작하며 ` SOURCES += `를 입력하고 그 뒤에 `hello.cpp`를 추가하세요. 다음과 같은 형태가 되어야 합니다:

SOURCES += hello.cpp

프로젝트에 포함된 각 소스 파일에 대해 이 과정을 반복하여, 최종적으로 다음과 같은 형태가 되도록 합니다:

SOURCES += hello.cpp
SOURCES += main.cpp

모든 파일을 한 번에 나열하는 Make와 유사한 구문을 선호한다면, 다음과 같이 줄바꿈 문자를 이스케이프 처리하여 사용할 수 있습니다:

SOURCES = hello.cpp \
          main.cpp

이제 프로젝트 파일에 소스 파일이 나열되었으므로 헤더 파일을 추가해야 합니다. 헤더 파일은 소스 파일과 정확히 동일한 방식으로 추가되지만, 사용하는 변수 이름이 HEADERS라는 점이 다릅니다.

이 작업을 마치면 프로젝트 파일은 다음과 같이 보일 것입니다:

HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

타깃 이름은 자동으로 설정됩니다. 이는 프로젝트 파일명과 동일하지만, 플랫폼에 적합한 접미사가 붙습니다. 예를 들어, 프로젝트 파일 이름이 ` hello.pro`인 경우, Windows에서는 타깃이 ` hello.exe `이 되고, Unix에서는 ` hello `이 됩니다. 다른 이름을 사용하려면 프로젝트 파일에서 직접 설정할 수 있습니다:

TARGET = helloworld

완성된 프로젝트 파일은 다음과 같아야 합니다:

HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

이제 qmake를 사용하여 애플리케이션용 Makefile을 생성할 수 있습니다. 프로젝트 디렉터리에서 명령줄에 다음을 입력하십시오:

qmake -o Makefile hello.pro

참고: 패키지 관리자를 통해 Qt를 설치한경우 , 바이너리 파일 경로는 qmake6 일 수 있습니다.

그런 다음 사용하는 컴파일러에 따라 make 또는 nmake 을 입력하십시오.

Visual Studio 사용자의 경우, qmake를 사용하여 Visual Studio 프로젝트 파일을 생성할 수도 있습니다. 예를 들어:

qmake -tp vc hello.pro

애플리케이션을 디버깅 가능하게 만들기

애플리케이션의 릴리스 버전에는 디버깅 심볼이나 기타 디버깅 정보가 포함되어 있지 않습니다. 개발 중에는 관련 정보가 포함된 애플리케이션의 디버깅 버전을 생성하는 것이 유용합니다. 이는 프로젝트 파일의 CONFIG 변수에 debug 을 추가함으로써 쉽게 구현할 수 있습니다.

예를 들어:

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

이전과 마찬가지로 qmake를 사용하여 Makefile을 생성합니다. 이제 디버깅 환경에서 애플리케이션을 실행할 때 유용한 정보를 얻을 수 있습니다.

플랫폼별 소스 파일 추가

몇 시간 동안 코딩을 하다 보면, 애플리케이션의 플랫폼별 부분을 시작하게 되고, 플랫폼에 의존적인 코드를 별도로 관리하기로 결정할 수도 있습니다. 따라서 이제 프로젝트 파일에 포함해야 할 두 개의 새로운 파일, 즉 ` hellowin.cpp `과 ` hellounix.cpp`이 생겼습니다. 이 파일들을 단순히 ` SOURCES ` 변수에 추가할 수는 없습니다. 그렇게 하면 두 파일 모두 Makefile에 포함되기 때문입니다. 따라서 여기서 해야 할 일은 빌드 대상 플랫폼에 따라 처리될 스코프를 사용하는 것입니다.

Windows용 플랫폼 종속 파일을 추가하는 간단한 스코프는 다음과 같습니다:

win32 {
    SOURCES += hellowin.cpp
}

Windows용으로 빌드할 때, qmake는 hellowin.cpp 를 소스 파일 목록에 추가합니다. 다른 플랫폼용으로 빌드할 때는 qmake가 이 파일을 무시합니다. 이제 남은 일은 Unix 전용 파일을 위한 스코프를 만드는 것뿐입니다.

이 작업을 마치면 프로젝트 파일은 다음과 같이 보일 것입니다:

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}

이전과 마찬가지로 qmake를 사용하여 Makefile을 생성합니다.

파일이 존재하지 않을 때 qmake 중지하기

특정 파일이 존재하지 않을 경우 Makefile을 생성하지 않으려는 경우가 있을 수 있습니다. exists() 함수를 사용하여 파일이 존재하는지 확인할 수 있습니다. error() 함수를 사용하여 qmake의 처리를 중지할 수 있습니다. 이는 스코프와 동일한 방식으로 작동합니다. 스코프 조건을 해당 함수로 대체하기만 하면 됩니다. main.cpp라는 파일을 확인하는 코드는 다음과 같습니다:

!exists( main.cpp ) {
    error( "No main.cpp file found" )
}

! 기호는 테스트 결과를 반전시키는 데 사용됩니다. 즉, 파일이 존재하면 ` exists( main.cpp ) `이 참이고, 파일이 존재하지 않으면 ` !exists( main.cpp ) `이 참입니다.

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
    error( "No main.cpp file found" )
}

이전과 마찬가지로 qmake를 사용하여 makefile을 생성합니다. main.cpp 의 이름을 일시적으로 변경하면 해당 메시지가 표시되고 qmake가 처리를 중단합니다.

두 개 이상의 조건 확인

Windows를 사용 중이며, 명령줄에서 애플리케이션을 실행할 때 qDebug() 를 통해 문장의 출력을 확인하고 싶다고 가정해 봅시다. 출력을 보려면 적절한 콘솔 설정으로 애플리케이션을 빌드해야 합니다. Windows의 Makefile에 이 설정을 포함시키기 위해 CONFIG 줄에 console 를 쉽게 추가할 수 있습니다. 하지만, Windows에서 실행할 때만 CONFIG 줄을 추가하고 , CONFIG 줄에 이미 debug 가 포함되어 있는 경우에만 추가하고 싶다고 가정해 봅시다. 이를 위해서는 두 개의 중첩된 스코프를 사용해야 합니다. 먼저 하나의 스코프를 만든 다음, 그 안에 다른 스코프를 만듭니다. 처리할 설정은 다음과 같이 두 번째 스코프 안에 넣습니다:

win32 {
    debug {
        CONFIG += console
    }
}

중첩된 스코프는 콜론(:)을 사용하여 연결할 수 있으므로, 최종 프로젝트 파일은 다음과 같습니다:

CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
    SOURCES += hellowin.cpp
}
unix {
    SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
    error( "No main.cpp file found" )
}
win32:debug {
    CONFIG += console
}

이것으로 끝입니다! 이제 qmake 튜토리얼을 완료했으며, 개발 프로젝트를 위한 프로젝트 파일을 작성할 준비가 되었습니다.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.