Qt 구성 옵션
configure는 소스에서 사용자 정의 버전의 Qt를 빌드할 수 있도록 지원하는 명령줄 도구입니다. 이 도구는 메인 Qt 소스 디렉토리의 일부입니다.
Qt 6부터 configure는 cmake를 감싸는 래퍼입니다. 구성은 추가 오류 검사 및 Qt 5와의 호환성을 제공합니다.
이 페이지에서는 몇 가지 구성 옵션에 대해 설명합니다. 전체 옵션 목록을 보려면 configure -h 명령을 입력하세요.
참고: 달리 명시되지 않는 한 이 페이지의 명령은 Linux 플랫폼용입니다. macOS와 Windows에서는 경로 및 디렉터리 구조가 다르므로 명령이 달라집니다. 또한 Windows 시스템에서 구성 스크립트의 이름은 configure.bat입니다.
워크플로 구성
구성은 CMake, 컴파일러 및 필수 빌드 도구를 쉽게 사용할 수 있는 작업 빌드 환경에서 호출해야 합니다. Qt 소스 빌드에는 플랫폼별로 이러한 종속성이 나열되어 있습니다.
이러한 환경을 설정한 후, 일반적인 워크플로는 별도의 빌드 디렉터리를 생성한 다음, 먼저 config를 실행한 다음 Qt를 빌드하고 Qt를 설치하는 것입니다:
~/qt-source/configure cmake --build . --parallel cmake --install .
다른 구성 플래그로 실험하고 싶을 수도 있으므로 구성 플래그를 여러 번 실행할 수 있습니다. CMake는 구성 옵션과 환경에 대한 정보를 CMakeCache.txt라는 파일에 캐시합니다. 캐시된 정보 없이 다시 시작하려면 이 파일을 삭제하세요.
소스, 빌드 및 설치 디렉터리
소스 디렉터리에는 소스 패키지 또는 git 리포지토리에서 가져온 소스 코드가 들어 있습니다. 빌드 디렉터리에는 빌드 시스템 파일, 오브젝트 파일, 기타 중간 파일 등 빌드 관련 파일이 저장됩니다. 설치 디렉터리는 시스템 또는 애플리케이션에서 사용하기 위해 바이너리와 라이브러리가 설치되는 곳입니다.
섀도 빌드 및 -prefix 옵션을 사용하여 이러한 디렉터리를 분리하는 것이 좋습니다. 이렇게 하면 별도의 디렉터리에 저장되는 빌드 아티팩트와 바이너리로부터 Qt 소스 트리를 깨끗하게 유지할 수 있습니다. 이 방법은 동일한 소스 트리에서 서로 다른 구성의 빌드를 여러 개 생성하려는 경우 매우 편리합니다. 섀도 빌드를 하려면 별도의 디렉터리에서 config를 실행하세요:
mkdir ~/qt-build cd ~/qt-build ~/qt-source/configure -prefix /opt/Qt6
접두사 옵션을 사용하여 구성하면 Qt 바이너리와 라이브러리가 다른 디렉터리(이 경우 /opt/Qt6)에 설치됩니다.
예제, 테스트 및 도구
기본적으로 configure는 Qt의 라이브러리와 도구만 구성합니다. make examples 또는 -make tests를 사용하여 Qt와 함께 제공되는 예제나 테스트도 빌드할 수 있습니다:
~/qt-source/configure -make examples -make tests
예제, 테스트 및 도구가 구성되지만 기본적으로 빌드되지 않도록 Qt를 구성할 수도 있습니다. CMake 변수 QT_BUILD_EXAMPLES_BY_DEFAULT, QT_BUILD_TESTS_BY_DEFAULT 및 QT_BUILD_TOOLS_BY_DEFAULT를 OFF로 설정하면 cmake --build .
에 의해 해당 부분이 빌드되지 않습니다. 대신 CMake는 개별 타깃을 생성하여 사용자가 개별적으로 빌드할 수 있습니다.
여기서는 Qt 라이브러리와 도구뿐만 아니라 노트패드 예제도 빌드합니다:
~/qt-source/configure -make examples -- -D QT_BUILD_EXAMPLES_BY_DEFAULT=OFF cmake --build . --parallel cmake --build . --parallel --target notepad
참고: --developer-build 옵션은 기본적으로 테스트를 빌드합니다. 아래의 개발자 빌드도 참조하세요.
빌드 구성
Qt 라이브러리와 도구를 다양한 변형으로 빌드할 수 있으며, 각 변형은 각기 다른 사용 사례에 최적화되어 있습니다.
디버그 및 릴리스 빌드
-release는 컴파일러가 코드를 최적화하고 Qt 및 해당 도구와 함께 추가 디버그 심볼을 제공하지 않도록 지시합니다.
-debug는 Qt와 그 도구를 더 쉽게 디버깅할 수 있도록 일부 최적화를 생략합니다. 이 옵션을 사용하면 디버거에서 빌드된 라이브러리의 코드와 상태를 검사할 수 있는 디버그 심볼을 생성할 수도 있습니다.
마지막으로 -debug-and-release를 사용하면 Qt 라이브러리의 디버그 및 릴리스 변형을 한 번에 빌드할 수 있습니다. 이 옵션은 Windows용 빌드를 구성하는 경우에만 지원됩니다.
구성을 조정할 수 있는 추가 옵션이 있습니다:
- -force-debug-info: 디버그 정보가 포함된 릴리스 빌드를 생성합니다.
- -separate-debug-info: 디버그 정보를 별도의 파일로 추출합니다.
- -optimize-size: 속도 대신 크기에 맞게 릴리스 빌드를 최적화합니다.
정적 및 공유 빌드
Qt 모듈은 실행 파일이 시작 시 링크하여 로드하는 별도의 라이브러리(Qt 라이브러리의 경우) 또는 런타임(Qt 플러그인의 경우)으로 빌드할 수 있습니다. 이를 공유 빌드라고 하며 대부분의 플랫폼에서 기본 구성입니다. 일치하는 구성 옵션은 -shared입니다.
실행 가능한 바이너리가 링크하는 모든 Qt 모듈과 필요한 모든 Qt 플러그인을 포함하도록 Qt를 빌드할 수도 있습니다. 이를 정적 빌드라고 하며 -static 옵션으로 구성할 때 선택할 수 있습니다.
CMake 생성기
구성할 때 CMake 생성기를 선택할 수 있습니다. CMake는 Qt와 함께 사용할 수 없는 제너레이터를 지원한다는 점에 유의하세요. 따라서 config는 자동으로 제너레이터를 선택합니다.
구성은 닌자 실행 파일을 사용할 수 있는 경우 항상 닌자 제너레이터와 빌드 도구를 사용합니다. Ninja는 크로스 플랫폼을 지원하며 기능이 풍부하고 성능이 뛰어나므로 모든 플랫폼에서 사용할 것을 권장합니다. 다른 생성기를 사용할 수도 있지만 공식적으로 지원되지는 않습니다.
모듈 및 기능
Qt 소스 코드는 하위 모듈이라고 하는 여러 최상위 디렉터리에 구성되어 있습니다(예: qtbase
, qtdeclarative
또는 qtmultimedia
). 이러한 하위 모듈 내부에는 다양한 Qt 모듈의 소스 코드가 있습니다. Qt Core, Qt Quick와 Qt Multimedia 가 이러한 Qt 모듈의 예입니다.
참고: 많은 서브모듈(최상위 소스 디렉터리)은 구현하는 Qt 모듈과 이름이 같지만, 항상 그런 것은 아닙니다. 예를 들어, qtdeclarative
에는 Qt Quick 와 Qt Qml와 다양한 관련 모듈이 포함되어 있습니다. 각 디렉터리에 있는 README.md 파일을 참조하여 개요를 확인하십시오.
빌드 시간을 제한하기 위해 하위 모듈을 명시적으로 포함하거나 제외할 수 있습니다. 또한 각 Qt 모듈에는 명시적으로 활성화 또는 비활성화할 수 있는 기능이 있을 수 있습니다.
Qt 서브모듈 포함 및 제외하기
configure
의 -skip 옵션은 서브모듈(최상위 소스 디렉토리)을 Qt 빌드에서 제외하는 데 사용됩니다. 서브모듈을 제외하면 해당 서브모듈 안에 있는 모든 Qt 모듈이 제외됩니다. qtwayland
서브모듈에는 Qt Wayland Compositor 와 Qt Wayland QPA 플러그인을 모두 포함합니다. 따라서 -skip qtwayland
을 구성 옵션으로 지정하면 두 Qt 모듈이 모두 제외됩니다.
~/qt-source/configure -skip qtwayland
configure
서브모듈 옵션을 사용하면 나열된 서브모듈과 해당 종속성만 빌드하는 빌드를 구성할 수 있습니다. 예를 들어, qtmultimedia
서브모듈을 지정하면, Qt Multimedia 을 지정하면 모든 종속 요소가 빌드에 포함됩니다. 여러 개의 서브모듈은 쉼표로 구분할 수 있습니다.
~/qt-source/configure -submodules qtmultimedia,qtactiveqt
기능 포함 또는 제외
기능-<기능> 및 -기능 없음-<기능> 옵션은 각각 특정 기능을 포함하거나 제외합니다.
예를 들어, -no-feature-accessibility config 옵션을 사용하여 Qt에서 접근성 지원을 비활성화할 수 있습니다:
~/qt-source/configure -no-feature-accessibility
configure -list-features를 사용하면 명령줄에 사용 가능한 모든 기능의 목록을 표시할 수 있습니다. 기능은 다른 기능에 따라 달라질 수 있으므로 한 기능을 비활성화하면 다른 기능에 부작용이 발생할 수 있습니다.
서드파티 라이브러리
Qt 소스 패키지에는 타사 라이브러리가 포함되어 있습니다. Qt가 시스템의 라이브러리 버전을 사용할지 아니면 번들 버전을 사용할지 설정하려면 구성할 라이브러리 이름 앞에 -system 또는 -qt를 전달합니다.
아래 표에는 몇 가지 타사 옵션이 요약되어 있습니다:
라이브러리 이름 | Qt에 번들로 제공됨 | 시스템에 설치됨 |
---|---|---|
zlib | -qt-zlib | -system-zlib |
libjpeg | -qt-libjpeg | -system-libjpeg |
libpng | -qt-libpng | -system-libpng |
freetype | -qt-freetype | -system-freetype |
PCRE | -qt-pcre | -system-pcre |
HarfBuzz-NG | -qt-harfbuzz | -system-harfbuzz |
또한 -qt 대신 -no를 사용하여 이러한 라이브러리 대부분에 대한 지원을 비활성화할 수도 있습니다.
Qt 6의 configure는 서드파티 라이브러리를 찾기 위해 CMake에 의존합니다. 다양한 시스템 경로를 확인하여 이를 수행합니다. 다른 곳에 라이브러리를 설치한 경우 CMAKE_PREFIX_PATH 변수를 설정하거나 확장하여 CMake에 이를 알릴 수 있습니다.
전체 옵션 목록은 configure -help 도움말을 참조하세요.
SSL
Qt Network 은 보안 소켓 계층(SSL)의 통신을 지원하도록 구성할 수 있지만 실제 알고리즘 자체를 구현하지는 않습니다. 대신 다른 라이브러리를 활용해야 합니다.
Windows에서 Qt는 이 목적으로 시스템의 보안 채널 라이브러리를 사용할 수 있습니다(구성 옵션 -channel). macOS 및 iOS에서 Qt는 SecureTransport API를 사용하도록 구성할 수 있습니다(구성 옵션 -securetransport).
거의 모든 대상 플랫폼에서 작동하는 가장 완벽한 기능 지원은 OpenSSL 툴킷 (옵션 -openssl)에서 제공합니다. Qt에는 OpenSSL 1.1.1 이상이 필요합니다.
Qt는 세 가지 방법으로 OpenSSL을 사용하도록 구성할 수 있습니다:
- Qt Network 런타임에 처음 필요할 때 OpenSSL 라이브러리(DLL)를 로드합니다. 이 라이브러리를 찾지 못하면 애플리케이션은 계속 실행되지만 SSL 통신을 처리하지 못합니다. 이 기능은 구성 옵션 -openssl-runtime을 사용하여 활성화할 수 있습니다.
- Qt Network OpenSSL 라이브러리에 대한 링크를 찾습니다. 로드 시점에 찾을 수 없는 경우 애플리케이션이 시작되지 않습니다. 이 옵션은 구성 옵션 -openssl-linked를 사용하여 활성화할 수 있습니다.
- Qt Network 는 OpenSSL 라이브러리의 정적 버전에 대해 컴파일되며 OpenSSL은 Qt Network 라이브러리의 일부가 됩니다. 이 옵션은 config 옵션 openssl-linked를 사용하고 OPENSSL_USE_STATIC_LIBS 변수를 ON으로 설정하면 활성화됩니다.
OpenSSL이 표준 위치에 설치되어 있지 않아 config에서 찾을 수 없는 경우 CMake 변수 OPENSSL_ROOT_DIR을 설정합니다.
SSL을 지원하는 Qt에 대한 자세한 지침은 보안 소켓 계층(SSL) 클래스를 참조하십시오.
교차 컴파일 옵션
크로스 플랫폼 개발 및 배포를 위해 Qt를 구성하려면 먼저 호스트 머신에 맞는 Qt 버전이 있어야 합니다. 또한 대상 플랫폼에 대한 개발 툴체인을 설정해야 합니다. 이 설정은 지원되는 플랫폼에 따라 다릅니다.
일반적인 옵션은 다음과 같습니다:
- -external-hostbindir - 이 머신용으로 빌드된 Qt 툴 경로.
- -device - qmake 컴패니언 파일에 대한 장치/mkspec을 선택합니다.
- -device-option - 추가 qmake 변수를 설정합니다.
참고: 데스크톱이 아닌 타겟을 위한 툴체인은 종종 Qt를 구성해야 하는 소위 시스루트와 함께 제공됩니다.
개발자 빌드
개발자 빌드 구성 옵션은 Qt 자체 개발을 위해 빌드를 최적화하는 편의 옵션입니다. 이 옵션은 고객에게 제공하는 Qt 배리언트를 빌드하는 데 사용해서는 안 됩니다.
개발자 빌드의 라이브러리에는 표준 빌드보다 더 많은 내보내기 심볼이 포함되며, 모든 Qt 코드는 더 높은 경고 수준으로 컴파일됩니다. 또한 빌드 디렉터리의 기본 접두사가 변경되어 테스트하기 전에 Qt를 설치할 필요가 없으며, 마지막으로 Qt의 자동 테스트가 기본적으로 컴파일되도록 설정할 수 있습니다.
기존 빌드 재구성하기
Qt 빌드 시스템은 기본적으로 다른 구성 옵션 세트를 사용하여 기존 Qt 빌드를 재구성하는 기능을 지원하지만, CMake 내부적으로 작동하는 방식 때문에 그다지 강력하지는 않습니다.
기존 빌드를 재구성하는 가장 안전한 방법은 -redo 옵션을 전달하여 구성하는 것입니다. 그러면 빌드의 CMakeCache.txt 파일이 제거되어 재구성을 위한 비교적 안전한 상태가 보장됩니다. 초기 구성 플래그는 재구성된 빌드에 계속 적용됩니다.
플랫폼별 특정 옵션
다음 페이지에서는 특정 플랫폼 개발을 위해 Qt를 구성하는 방법에 대한 지침을 제공합니다:
© 2025 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.