이 페이지에서

QNX용 Qt 런타임 대상 요구 사항

QNX Software Systems는 임베디드 기기 제작을 위한 소프트웨어 솔루션을 제공합니다. 여기에는 매우 유연한 방식으로 QNX Neutrino RTOS 부트 이미지를 생성하는 작업도 포함됩니다. QNX에서 OS 이미지 생성을 위한 여러 참조 스크립트를 제공하지만, 조만간 변경이 필요해지거나 OS 이미지를 처음부터 직접 생성하기로 결정할 수도 있습니다. Qt는 여러 타사 구성 요소와 특정 OS 서비스의 존재에 의존합니다. 이 때문에 Qt를 실행하는 대상 장치용 QNX Neutrino RTOS 부트 이미지는 Qt가 예상대로 작동하도록 보장하기 위해 다음 섹션에 나열된 요구 사항을 충족해야 합니다.

QNX 화면 그래픽 서브시스템

Qt 애플리케이션을 시작하기 전에 QNX 화면 그래픽 서브시스템 (이하 "Screen"이라고도 함)이 실행 중이어야 합니다. Screen 는 드라이버와 Qt에서 사용하는 여러 유틸리티 및 서비스로 구성됩니다. 여기에는 마우스 및 키보드 이벤트 처리도 포함됩니다. gles2-gears 과 같은 그래픽 애플리케이션이 문제 없이 시작되고 실행되는지 확인함으로써, Screen 가 올바르게 구성되고 실행되고 있는지 확인할 수 있습니다.

SDP에 포함된 최근 샘플 OS 빌드 스크립트 대부분에는 Screen에 필요한 모든 구성 요소와 시작 명령어가 포함된 섹션이 있습니다. 이를 참고 자료로 활용할 수 있습니다.

Vulkan

Vulkan 렌더링을 사용하는 경우, 대상 이미지는 Vulkan 로더(libvulkan.so)와 VK_QNX_screen_surface 확장을 구현하는 Screen 그래픽 드라이버를 제공해야 합니다. 자세한 내용은 Vulkan 렌더링 API를 참조하십시오.

IPv6 지원

Qt Network의 네트워킹 스택은 실제 네트워킹이 IPv4를 사용하든 IPv6를 사용하든 상관없이 IPv6 지원이 활성화되어 있어야 합니다.

경고: io-pkt-v4가 아닌io-pkt-v6-hc 가 실행 중이어야 합니다.

임의의 장치 /dev/random

Qt는 /dev/random 가 설치되어 있고 정상적으로 작동해야 합니다. Qt 애플리케이션을 시작하기 전이나 시스템 시작 시에 다음 명령을 실행하여 를 시작하십시오:

random -p
waitfor /dev/random

시스템 로거

QNX는 임베디드 시스템의 특성에 맞춰 설계된 slog2 로깅 프레임워크를 제공합니다. 이 프레임워크의 가장 큰 장점은 파일에 텍스트로 출력하는 방식보다 훨씬 뛰어난 성능을 제공한다는 점입니다. Qt는 QNX Neutrino RTOS에서 QDebug 를 통해 전송되는 모든 로깅 출력에 대해 기본적으로 이 프레임워크를 사용합니다. slog2 서비스는 시스템 시작 시 실행되어야 합니다. slog2 는 또한 /tmp 폴더가 존재해야 하며, 이 폴더도 다음과 같이 구성해야 합니다.

[type=link] /tmp=/dev/shmem
display_msg "Starting slogger2..."
slogger2 -U1001:1000 &
waitfor /dev/slog2

환경 변수

Qt 애플리케이션을 시작할 때 설정해야 할 일련의 환경 변수가 있습니다. 이들 중 대부분은 사실 QNX Neutrino RTOS에만 국한된 것은 아닙니다. 하지만 문제 발생 시 이를 알고 있으면 시간을 크게 절약할 수 있으므로 여기에서 언급합니다.

참고: POSIX 환경 변수, 특히 호스트 이름과 날짜 및 시간에 접근하려면setconf 및 getconf 가 필요합니다.

Qt 런타임 위치

RPATH 환경 변수가 설정된 상태에서 Qt를 빌드하지 않았다면, 파일 시스템 내의 임의의 폴더에 Qt 런타임 구성 요소를 배치할 수 있습니다. Qt가 <Qt-install-path> 에 설치되어 있다고 가정할 때, 다음 환경 변수들은 유효한 위치를 가리켜야 합니다:

  • LD_LIBRARY_PATH <Qt-install-path>/lib 에 있는 Qt 라이브러리의 경로를 포함해야 합니다.
  • QT_PLUGIN_PATH Qt 플러그인이 위치한 위치를 정의합니다. <Qt-install-path>/plugins 로 설정해야 합니다.
  • QML2_IMPORT_PATH Qt Quick 플러그인이 위치한 위치를 정의합니다. 로 설정해야 합니다. <Qt-install-path>/qml
  • Qt가 fontconfig를 사용하지 않는 경우, ` QT_QPA_FONTDIR`을 통해 글꼴 경로를 지정하거나, 기본 글꼴 위치인 ` <Qt-install-path>/lib/fonts ` 아래에 글꼴을 배치해야 합니다.
  • 사용 가능한 화면/디스플레이의 수와 순서는 QT_QPA_QNX_DISPLAY_CONFIG 에서 확인하십시오.

물리적 화면 크기

Qt는 DPI 값을 결정하고 올바른 글꼴 크기를 설정하기 위해 연결된 디스플레이의 물리적 크기에 대한 정보가 필요합니다. 일반적으로 이 정보는 Screen 객체를 통해 제공됩니다. 경우에 따라 0mmx0mm와 같은 유효하지 않은 화면 크기가 표시될 수 있습니다. 이러한 경우 Qt는 필요한 정보를 얻기 위해 QQNX_PHYSICAL_SCREEN_SIZE 환경 변수를 적절한 값으로 설정해야 합니다. Qt 애플리케이션이 물리적 화면 크기를 확인할 수 없다는 오류 메시지와 함께 종료된다면, Qt 애플리케이션을 시작하기 전에 변수를 다음과 같이 설정하십시오:

export QQNX_PHYSICAL_SCREEN_SIZE=150,100

이렇게 설정하면 해당 상황에서 화면의 너비가 150mm, 높이가 100mm임을 Qt에 알릴 수 있습니다. 물리적 화면 크기는 밀리미터(mm) 단위로 측정되며, 최종 구성에서 디스플레이의 실제 물리적 크기와 일치해야 합니다.

Qt 애플리케이션의 첫 실행 시 문제 해결

QNX Neutrino RTOS가 제공하는 유연성의 유일한 단점은 대상 시스템의 실행 환경이 Qt가 예상하는 것과 약간 다를 수 있다는 점입니다. 이는 새로운 대상 시스템에서 Qt 애플리케이션이 시작되지 않는 일반적인 원인입니다. 몇 가지 일반적인 환경 변수를 설정하면 문제의 근본 원인을 파악하는 데 도움이 될 수 있습니다:

  • QT_DEBUG_PLUGINS 를 1 로 설정하면 QPA 플러그인이 로드되지 않는 원인을 파악하는 데 도움이 됩니다.
  • LD_DEBUG 를 1 로 설정하면 공유 라이브러리가 어디에서 어떻게 로드되는지 파악하는 데 도움이 됩니다. 이는 플러그인이 다른 공유 라이브러리를 로드하지 못해 로드 실패가 발생한 경우, QT_DEBUG_PLUGINS 와 함께 사용할 수 있습니다.
  • QT_LOGGING_TO_CONSOLE 를 설정하면 모든 로깅 메시지가 slog2 대신 stderr 로 강제 전송됩니다. 이 설정은 메시지를 확인하기 위해 별도의 도구를 사용할 필요가 없으므로, 애플리케이션 시작 문제를 분석하는 데 유용합니다.

Qt는 일반적으로 fontconfig 를 사용하여 시스템 글꼴에 대한 액세스를 제공합니다. 글꼴 캐시가 이전에 생성되지 않은 경우, 첫 번째 Qt 애플리케이션이 시작될 때 생성됩니다. 설정 환경에 따라 이 과정이 매우 오랜 시간이 걸릴 수 있으며, 애플리케이션 시작을 상당히 지연시킬 수 있습니다. 필요하지 않은 경우, configure 단계에서 -DFEATURE_fontconfig=OFF 옵션을 사용하여 fontconfig를 비활성화할 수 있습니다.

QNX 플랫폼에서 QCursor 사용

QNX에서 사용자 정의 커서 지원은 기본적으로 비활성화되어 있습니다. 이를 활성화하려면 Qt 애플리케이션을 시작하기 전에 QT_QPA_QNX_CUSTOM_CURSOR 환경 변수를 설정하십시오:

export QT_QPA_QNX_CUSTOM_CURSOR=1

사용자 정의 커서 지원이 활성화되면 QNX는 창에 대한 커서 모양 변경을 지원하지만, 사용하려는 모양과 연관된 이미지를 Screen 구성 파일( graphics.conf)을 통해 배포하고 지정해야 합니다. 자세한 내용은 “디스플레이 구성” 하위 섹션의 cursor-type 매개변수를 참조하십시오. QNX에서는 기본 커서 외에 추가 커서가 제공되지 않습니다. 따라서 추가 커서 그래픽은 비트맵 형식으로 수동으로 제공해야 합니다. 아래 표는 각 ` Qt::CursorShape ` 값에 대해 ` graphics.conf `에서 사용되는 커서 이름을 보여줍니다.

Qt::CursorShape 값QNX 화면 구성 이름
Qt::ArrowCursor화살표
Qt::CrossCursor십자
Qt::WaitCursorwait
Qt::IBeamCursoribeam
Qt::PointingHandCursor손
Qt::OpenHandCursor잡다
Qt::ClosedHandCursor잡다
Qt::DragMoveCursor이동
그 외 모든 커서 모양화살표 (기본값)

© 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.