Под C:\Qt\5.12.0
существует 2 папки:
C:\
|->Qt\
|->5.12.0\
|->mingw73_64\
|->msvc2017_64\
Обе работают нормально, когда в PATH
работает только одна из них.Это потому, что если MinGW-w64
сначала в PATH
, то VC ++ никогда не использует правильную папку для поиска Qt5.CMAKE_PREFIX_PATH
не работает, потому что в тот момент, когда CMake находит его в CMakeLists.txt
, уже слишком поздно.
#Not working
if(WIN32) # Check if we are on Windows
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC) # Check if we are using the Visual Studio compiler.
set(CMAKE_PREFIX_PATH "C:\\Qt\\5.12.0\\msvc2017_64\\")
endif()
endif(WIN32)
find_package(Qt5Widgets CONFIG REQUIRED) #It finds MinGW-w64
Прямо сейчас я нашел хакерский способ проинструктировать KDevelop и CMake использоватьПапка msvc: у меня есть только MinGW в PATH
, и я использую следующий код внутри kdevelop-msvc.batch
:
SET PATH=C:\Qt\5.12.0\msvc2017_64;%PATH%
Определяя его перед остальной частью PATH
(включая MinGW), CMake находитправильные модули Qt5 для VC ++.
Но я хочу найти более элегантное и портативное решение для обнаружения Qt5 в Windows. Есть идеи?