首页 > 解决方案 > 告诉 CMake 使用自定义 Find*.cmake 而不是系统范围的一个

问题描述

我想使用从源代码编译并安装在文件夹中的 KWayland 库。我希望我的其他项目使用它。但相反,它使用安装在系统范围内的一个作为包管理器对 KDE 的依赖项。

我尝试在 QtCreator 中设置CMAKE_PREFIX_PATH/path/to/my/cmakefiles;/usr重新配置项目,但它仍然使用/usr.

标签: cmakeqt-creator

解决方案


CMAKE_PREFIX_PATH示例包的设置ABC将查找包配置文件,该文件将具有以下包形式之一ABC

  • abc-config.cmake
  • ABCConfig.cmake

通过设置CMAKE_PREFIX_PATH,它不会告诉CMake 在别处寻找查找模块(例如:)FindABC.cmake

如果你安装了你的包ABC(在你的例子中是 KWayland),安装的包应该提供了一个你可以使用的包配置文件。所以将CMAKE_PREFIX_PATH变量指向这个文件:

CMAKE_PREFIX_PATH: /path/to/KWayland/package/config/files

如果没有提供包配置文件,您可以使用查找模块 ( FindABC.cmake) 将包导入您的项目。要告诉 CMake 在非默认位置查找模块,您需要更新CMAKE_MODULE_PATH变量:

CMAKE_MODULE_PATH: /path/to/my/cmakefiles

推荐阅读