vcpkg로 설치한 Qt 라이브러리와 Qt Maintenance Tool(공식 Qt 설치 도구)로 설치한 Qt 라이브러리는 기술적으로 동시에 시스템에 존재할 수 있지만, 일반적인 프로젝트에서 동시에 함께 사용하는 것은 권장되지 않으며, 여러 문제가 발생할 수 있습니다.
주요 이유와 주의점은 다음과 같습니다:
- 경로 충돌 및 우선순위 문제
- CMake 프로젝트의 경우, vcpkg가 설치한 Qt가 CMAKE_PREFIX_PATH 등에서 우선적으로 인식되어, QtCreator에서 선택한 공식 Qt 버전 대신 vcpkg의 Qt가 자동으로 사용될 수 있습니다
- QtCreator의 Kit 설정이나 Maintenance Tool로 설치한 Qt가 무시될 수 있습니다
- Visual Studio 및 Qt VS Tools와의 호환성
- Qt VS Tools(Visual Studio용 Qt 확장)는 vcpkg로 설치한 Qt의 폴더 구조와 공식 Qt 설치의 구조가 다르기 때문에, vcpkg로 설치한 Qt와 완벽하게 호환되지 않을 수 있습니다
- 특히 디버그/릴리즈 라이브러리 경로, qmake.exe 위치, mkspecs 등에서 문제가 발생할 수 있습니다.
- 라이브러리 버전 충돌
- 두 설치 방식으로 서로 다른 Qt 버전이 설치되어 있다면, 프로젝트에서 예기치 않은 라이브러리 버전이 링크되어 런타임 오류가 발생할 수 있습니다.
- 특히 Qt의 바이너리 호환성 정책에 따라, 일부 버전 간에는 혼용이 불가능할 수 있습니다.
- 폴더 구조 및 경로 문제
vcpkg로 설치한 Qt는 공식 Qt 설치와 폴더 구조와 경로가 다릅니다. 예를 들어, qmake.exe가 위치한 경로가 다르고, 라이브러리와 플러그인, mkspecs 등도 분리되어 있습니다 - 디버그/릴리즈 라이브러리 분리
vcpkg는 디버그와 릴리즈 라이브러리를 각각 다른 폴더에 저장하는 반면, 공식 Qt 설치에서는 동일 폴더에 저장하는 경우가 많아 빌드 환경에서 혼란이 생길 수 있습니다 - 실제 사용 방법
- 동시에 사용하는 것은 피하고, 하나의 방식(공식 설치 또는 vcpkg 설치)만 사용하는 것이 안정적입니다.
- 특정 프로젝트에서는 vcpkg의 Qt를, 다른 프로젝트에서는 공식 설치 Qt를 사용하는 방식으로 분리할 수 있지만, 환경 변수 및 빌드 설정에 주의해야 합니다
결론:
vcpkg로 설치한 Qt와 Qt Maintenance Tool로 설치한 Qt는 동시에 시스템에 존재할 수 있지만, 동일한 프로젝트에서 함께 사용하는 것은 권장되지 않으며, 빌드 및 실행 환경에서 예기치 않은 문제가 발생할 수 있습니다. 프로젝트별로 한 가지 설치 방식만 사용하는 것이 가장 안전합니다.
참고
https://forum.qt.io/topic/157554/vs-tools-in-vs2022-do-not-work-with-vcpkg-installed-qt6
https://github.com/microsoft/vcpkg/issues/2643
https://forum.qt.io/topic/96818/integrate-qt-vs-tools-with-vcpkg-installed-qt
https://www.qtcentre.org/threads/71952-CMake-vcpkg-qt-takes-precedence-over-onlineinstaller-qt
'개발 > Qt' 카테고리의 다른 글
[Qt] moc(Meta Object Compiler)이란 (0) | 2023.07.16 |
---|---|
[QTest] Cmake로 QTest 빌드 중 error LNK2019: unresolved external symbol _main 오류 (0) | 2023.07.12 |
[Qt] QSqlQuery에서 regexp 사용하기 - sqlite3 (0) | 2023.03.06 |
[Qt] 디렉토리가 비어있는지 체크, 디렉토리 안 파일 개수 세기 (0) | 2022.06.14 |
[Qt] 파일에서 읽기 전용(Read Only) 속성 제거하기 (0) | 2022.03.04 |