CMake找不到包含/库

时间:2016-08-24 14:51:01

标签: cmake

我想在使用CMake的项目中使用一些第三方标头(或库)。但它没有找到标题(库)。为什么CMake找不到它?

1 个答案:

答案 0 :(得分:1)

CMake的查找例程在某些特定位置查找标题和库。这包括PATH变量以及已安装软件的默认位置,例如,对于许多Linuces /usr/bin。此外,它还会评估CMake变量CMAKE_PREFIX_PATH

有两种方法可以帮助CMake找到所需的文件:

  1. 检查您的软件是否已正确安装。对于自编译软件,通常由make install或类似软件完成。如果您使用软件包(RPM或deb),它们通常已安装,可以使用PATH变量找到。

  2. 如果您不想或可以安装该软件,请将其路径添加到CMAKE_PREFIX_PATH变量。将其传递给CMake调用cmake -DCMAKE_PREFIX_PATH=/path/to/software ..或在CMake-GUI中编辑/添加相应字段。

  3. 您必须删除CMakeCache.txt,否则CMake将找不到该库,因为它不会检查但使用缓存的结果。重新运行CMake它应该可以工作。

    评估顺序

    如果系统上有多个版本的库,则在系统路径变量之前对变量进行评估时,将要使用的库添加到CMAKE_PREFIX_PATH

    特定于模块的变量

    某些模块提供特定变量,例如mylib_DIRmylib_ROOT来指示搜索路径。不鼓励使用它们,它们仅用于向后兼容。新模块没有这些模块,CMake开发人员拒绝添加这些变量。

    文档

    有关CMake如何搜索文件的详细信息以及可在文档中找到的顺序:https://cmake.org/cmake/help/latest/command/find_library.html

相关问题