使用CMAKE_PREFIX_PATH进行多配置构建

时间:2020-06-18 21:43:49

标签: qt cmake

我正在使用find_package查找Qt,并将“ C:\ Qt \ 5.15.0 \ mingw81_64 \ lib \ cmake”添加到我的CMAKE_PREFIX_PATH环境变量中,并且仅在使用64位直到现在。但是,我希望能够在32位和64位版本之间切换。因此,我还为32位添加了上面的等效路径,但是这导致了链接错误(大概是CMake不确定要为哪一种配置选择哪一个,还是选择了错误的一个)。

解决此问题的常规方法是什么?目前,我正在使用后缀路径并根据编译器体系结构进行搜索,但是理想情况下,我希望将这些内容排除在CMake项目本身之外,而仅要求项目用户自己添加任何Qt位置,同时仍然可以拥有“多个” Qt位置。

这是可解决的吗?还是在您的CMAKE_PREFIX_PATH变量中有两个Qt路径是不当行为?

1 个答案:

答案 0 :(得分:2)

解决此问题的常规方法是什么?

仅将与所需体系结构相对应的Qt路径添加到CMAKE_PREFIX_PATH中。

[...]但是,理想情况下,我想将这些内容排除在CMake项目本身之外,而仅要求项目用户自己添加任何Qt位置,同时仍然能够“一个“ Qt位置。

您可以要求用户将Qt路径作为参数传递(通过命令行调用CMake时)

cmake -DQT_PATH={PATH TO QT} ...

或读取环境变量(用户必须设置)

if(DEFINED ENV{QT_ENVIRON})
    set(QT_PATH $ENV{QT_ENVIRON})
else()
    set(QT_PATH ...)
endif()