在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文件夹的黑手党方式:PATH
中只有MinGW,并且在kdevelop-msvc.batch
中使用了以下代码:
SET PATH=C:\Qt\5.12.0\msvc2017_64;%PATH%
CMake在PATH
的其余部分(包括MinGW)之前对其进行了定义,从而为VC ++找到了正确的Qt5模块。
但是我想找到一种更优雅,更可移植的解决方案,以便在Windows上发现Qt5。有什么想法吗?