플러그인 배포하기

이 항목에서는 런타임에 로드할 Qt 또는 애플리케이션용 플러그인 라이브러리를 배포하는 방법을 설명합니다. 정적 플러그인을 사용하는 경우 플러그인 코드는 이미 애플리케이션 실행 파일의 일부이므로 별도의 배포 단계가 필요하지 않습니다.

플러그인 디렉토리

Qt에서 애플리케이션이 시작되면 애플리케이션의 실행 디렉터리는 Qt가 플러그인을 검색하는 기본 디렉터리입니다.

예를 들어, Windows에서 응용 프로그램이 C:\Program Files\MyApp 에 있고 스타일 플러그인이 있는 경우, Qt는 C:\Program Files\MyApp\styles 을 찾습니다.

응용 프로그램의 실행 파일이 어디에 있는지 확인하려면 QCoreApplication::applicationDirPath()를 참조하십시오.

Qt는 또한 QLibraryInfo::path(QLibraryInfo::PluginsPath)로 지정된 디렉터리를 찾으며, 일반적으로 QTDIR/plugins 에 위치합니다; QTDIR 은 Qt가 설치된 디렉터리입니다. Qt가 추가 장소를 찾도록 하려면 QCoreApplication::addLibraryPath()를 호출하여 필요한 만큼의 경로를 추가할 수 있습니다. 자신만의 경로를 설정하려면 QCoreApplication::setLibraryPaths()를 사용하면 됩니다.

또는 qt.conf 파일을 사용하여 Qt 라이브러리에 컴파일된 하드 코딩된 경로를 재정의할 수 있습니다. 자세한 내용은 qt.conf 사용을 참조하십시오.

또 다른 방법은 응용 프로그램을 실행하기 전에 QT_PLUGIN_PATH 환경 변수를 설정하는 것입니다. 여러 경로를 시스템 경로 구분 기호로 구분할 수 있습니다. 이 변수를 설정하면 Qt는 이 변수에 지정된 경로에서 플러그인을 찾습니다.

참고: QT_PLUGIN_PATH 을 시스템 전체 환경 변수로 내보내면 다른 Qt 설치에 방해가 될 수 있으므로 내보내지 마십시오.

동적으로 플러그인 로드 및 확인

플러그인을 로드할 때 Qt 라이브러리는 플러그인을 로드하고 사용할 수 있는지 여부를 확인하기 위해 몇 가지 건전성 검사를 수행합니다. 이 정상 검사를 통해 여러 Qt 버전과 구성을 나란히 설치할 수 있습니다.

다음 규칙이 적용됩니다:

  • 부 버전 번호가 더 높은 Qt 라이브러리와 연결된 플러그인은 부 버전 번호가 더 낮은 라이브러리에서 로드되지 않습니다.


    예시: Qt 6.2.0은 Qt 6.3.0으로 빌드된 플러그인을 로드하지 않습니다. 예: Qt 6.2.0은 Qt 6.1.0으로 빌드된 플러그인을 로드합니다. 예제: Qt 6.2.0은 Qt 6.2.1로 빌드된 플러그인을 로드합니다.

  • 주요 버전 번호가 낮은 Qt 라이브러리와 연결된 플러그인은 주요 버전 번호가 높은 라이브러리에서 로드되지 않습니다.


    예시: 예: Qt 6.0.0은 Qt 5.15.0으로 빌드된 플러그인을 로드하지 않습니다.

애플리케이션을 확장하기 위해 플러그인을 빌드할 때는 플러그인이 애플리케이션과 동일한 방식으로 구성되었는지 확인하는 것이 중요합니다. 즉, 애플리케이션이 릴리스 모드로 빌드된 경우 플러그인도 릴리스 모드로 빌드해야 합니다. 단, 플러그인 시스템이 애플리케이션과 다른 모드로 빌드된 플러그인을 로드하지 않는 Unix 운영 체제는 예외입니다.

플러그인 디버깅

올바르게 작성된 플러그인이 해당 플러그인을 사용하도록 설계된 애플리케이션에서 작동하지 않을 수 있는 여러 가지 문제가 있습니다. 이러한 문제 중 대부분은 플러그인과 애플리케이션이 빌드된 방식의 차이와 관련이 있으며, 종종 별도의 빌드 시스템 및 프로세스에서 발생합니다.

Qt에서 로드하려는 각 플러그인에 대한 진단 정보를 얻으려면 QT_DEBUG_PLUGINS 환경 변수를 사용합니다. 애플리케이션이 실행되는 환경에서 이 변수를 0이 아닌 값으로 설정합니다.

다음 표는 개발자가 플러그인을 만들 때 발생하는 일반적인 문제의 원인과 가능한 해결책을 설명합니다.

문제원인해결 방법
애플리케이션에서 직접 열어도 플러그인이 자동으로 로드되지 않습니다. Qt Widgets Designer Help|About Plugins 대화 상자에 플러그인 라이브러리가 표시되지만 각 플러그인 아래에 나열된 플러그인이 없습니다.애플리케이션과 해당 플러그인이 서로 다른 모드로 빌드되었습니다.실행 파일과 동일한 구성으로 플러그인을 빌드하세요.

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