QNX용 Qt 빌드

QNX SDP 설정

Qt 6을 빌드하려면 QNX 웹 사이트에서 QNX SDP 7.1을 다운로드하여 설치해야 합니다.

참고: 적절한 라이센스가 필요합니다. 자세한 내용은 QNX에 문의하십시오.

컴파일러 및 툴체인의 다른 부분은 SDP 패키지에 제공됩니다. 다음과 같이 터미널의 SDP 설치 폴더에서 QNX 설치 스크립트를 실행하여 빌드 환경을 초기화합니다:

source qnxsdp-env.sh

또는 Windows 명령 셸에서 qnxsdp-env.bat을 실행합니다.

호스트 빌드

Qt를 크로스 컴파일하려면 호스트 빌드를 사용할 수 있어야 합니다. 빌드 도중 특정 도구(예: moc, rcc, qmlcachegen, qsb)가 호스트 빌드에서 호출되기 때문입니다. 두 가지 옵션이 있습니다:

그러나 QNX용 컴파일 시에도 동일한 도구가 필요하므로 호스트에서 데스크톱 타겟용 Qt도 빌드할 수 있는지 확인하는 것이 좋습니다.

QNX용 툴체인 파일 생성하기

CMake로 프로젝트를 크로스 컴파일하려면 툴체인 파일이 필요합니다. 이 CMake 언어 파일은 플랫폼 이름, 컴파일러/링커 및 기타 여러 가지 툴체인 관련 항목에 대한 올바른 값을 설정합니다. 참고로, CI에 사용되는 툴체인 파일은 소스 패키지 coin/provisioning/common/shared/cmake_toolchain_files에서 찾을 수 있습니다.

set(CMAKE_SYSTEM_NAME QNX)
set(CMAKE_SYSTEM_PROCESSOR armle-v7)
set(arch gcc_ntoarmv7le)

set(CMAKE_C_COMPILER qcc)
set(CMAKE_C_COMPILER_TARGET ${arch})
set(CMAKE_CXX_COMPILER q++)
set(CMAKE_CXX_COMPILER_TARGET ${arch})

set(CMAKE_FIND_ROOT_PATH $ENV{QNX_TARGET};$ENV{QNX_TARGET}/${CMAKE_SYSTEM_PROCESSOR})

set(CMAKE_SYSROOT $ENV{QNX_TARGET})

예제 파일은 armv7le 입니다. 다른 가능성은 대상 아키텍처에 따라 aarch64lex86_64 입니다.

참고: Cmake는 QNX에서 STRIP, AR, RANLIB 및 NM 변수를 올바르게 전달하지 않으므로 사용하는 경우 툴체인 파일에 별도로 지정해야 합니다.

QNX용 Qt 구성 및 빌드하기

QNX용 Qt를 구성하고 빌드하려면 다음이 필요합니다:

  • Qt 소스 빌드하기에서 설명한 대로 Qt 빌드용 도구가 호스트 플랫폼에 맞게 준비되어 있고 작동합니다.
  • 툴체인 파일, $HOME/qnx.cmake.
  • $HOME/qt 에서 체크 아웃하거나 설치한 Qt 소스 코드.
  • $HOME/qt-host 에 Qt의 호스트 빌드가 있습니다.
  • 로컬 시스템의 설치 위치가 $HOME/qnx-install 로 설정되어 있습니다.

build 디렉터리를 생성하고 전환한 후 다음을 실행합니다:

$HOME/qt/configure -nomake examples -nomake tests \
-qt-host-path $HOME/qt_host \
-extprefix qnx_install \
-prefix /qt \
-- -DCMAKE_TOOLCHAIN_FILE=$HOME/qnx.cmake  \
$HOME/qt

Qt 6부터 configure 도구는 CMake의 래퍼이며, 실제로 이 configure 명령은 다음과 같이 CMake를 직접 호출하는 것과 동일합니다:

cmake -GNinja -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF \
-DQT_HOST_PATH=$HOME/qt_host \
-DCMAKE_STAGING_PREFIX=$HOME/qnx_install \
-DCMAKE_INSTALL_PREFIX=/qt \
-DCMAKE_TOOLCHAIN_FILE=$HOME/qnx.cmake  \
$HOME/qt

참고: Windows에서 빌드하는 경우, PCH(사전 컴파일된 헤더)를 활성화하면 QNX 컴파일러가 충돌을 일으키므로 명시적으로 비활성화해야 합니다. PCH를 비활성화하려면 구성 옵션 -no-pch 을 사용합니다.

참고: QNX SDP 8.0을 사용하는 경우, 구성 옵션 -skip qtmultimedia -skip qtspeech -skip qtremoteobjects -skip qtinterfaceframework 을 사용하여 지원되지 않는 모듈 및 해당 종속 모듈을 건너뜁니다.

구성이 오류 없이 완료되면 다음을 실행하여 Qt를 빌드합니다:

cmake --build . --parallel

참고: QNX 컴파일러는 호스트 빌드에 사용되는 컴파일러보다 더 많은 메모리를 필요로 할 수 있습니다. --parallel <numOfProcesses> 을 사용하여 빌드할 때 최대 동시 프로세스 수를 제한하십시오.

빌드가 완료되면 다음을 실행합니다:

cmake --install .

그러면 결과가 $HOME/qnx_install 에 설치됩니다. 여기에서 Qt Creator, scp를 직접 사용하거나 다른 방법을 사용하여 Qt 빌드를 대상 장치에 배포할 수 있습니다. -prefix 구성 매개변수(예제에서는 /qt)는 대상 디바이스의 배포 위치를 정의합니다.

대상 기기용 애플리케이션 빌드하기

Qt 빌드가 완료되고 스테이징 위치에 설치되면 예제 또는 애플리케이션을 빌드할 수 있습니다.

CMake를 사용하여 생성된 qt-cmake 스크립트를 스테이징 위치(예제에서는 $HOME/qnx_install)의 bin 디렉터리에서 구성한 다음 ninja를 실행합니다. 예를 들어

$HOME/qnx_install/bin/qt-cmake .
cmake --build .

그런 다음 결과 애플리케이션 바이너리를 디바이스에 배포할 수 있습니다. qt-cmake 헬퍼 스크립트를 사용하면 Qt 빌드에 사용된 툴체인 파일이 로드되므로 각 애플리케이션에 대해 반복적으로 지정할 필요가 없으므로 편리합니다.

시스템에 빌드되지 않은 Qt 설치를 사용하는 경우 qt-cmake 은 대상 플랫폼에 대한 CMake 툴체인 파일의 위치를 알아야 합니다.

이러한 경우 qt-cmake 에 다음과 같이 QT_CHAINLOAD_TOOLCHAIN_FILE 변수를 설정하여 사용자 지정 툴체인 파일을 체인 로드하도록 지시하세요:

$HOME/qnx_install/bin/qt-cmake -DQT_CHAINLOAD_TOOLCHAIN_FILE=$HOME/qnx.cmake .

시스템에 빌드되지 않은 Qt 설치를 사용하여 Qt Creator 에서 애플리케이션을 빌드하는 경우, 로컬 툴체인 파일을 가리키는 CMAKE_TOOLCHAIN_FILE 변수를 키트 구성(편집 > 환경설정 > 키트)에 추가해야 합니다.

Qt Creator 을 사용하는 동안 QNX 장치용 키트를 연결하고 추가하는 방법에 대한 자세한 내용은 QNX 장치 연결하기를 참조하십시오.

타사 라이브러리

시스템 이미지에 다음과 같은 추가 타사 라이브러리가 포함되어 있는지 확인하십시오(최소 QNX Neutrino RTOS 이미지에 항상 포함되지는 않음):

  • libfontconfig
  • libfreetype
  • libiconv
  • libicui18n
  • libicudata
  • libicuuc
  • libpng16
  • libxml2
  • libsqlite3
  • libssl
  • libcrypto
  • libzstd

참고: 이 목록은 QNX Neutrino OS에서 Qt가 사용하는 공유 라이브러리의 전체 목록이 아닙니다. 여러 공유 라이브러리는 이미 일반적인 OS 이미지에서 사용할 수 있거나 시스템의 다른 부분에 포함되어 있습니다(예: Screen).

Qt 구성 옵션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.