Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMake找不到包含/库_Cmake - Fatal编程技术网

CMake找不到包含/库

CMake找不到包含/库,cmake,Cmake,我想在使用CMake的项目中使用一些第三方标题(或库)。但它找不到标题(库)。为什么CMake找不到它?CMake的查找例程在某些特定位置查找头和库。这包括路径变量和已安装软件的默认位置,例如,对于许多产品/usr/bin。此外,它还计算CMake变量CMake\u PREFIX\u PATH 您有两种可能帮助CMake查找所需文件: 检查您的软件是否正确安装。对于自编软件,通常由makeinstall或类似程序完成。如果您使用软件包(RPM或deb),则通常会安装这些软件包,并且可以通过PAT

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

CMake的查找例程在某些特定位置查找头和库。这包括
路径
变量和已安装软件的默认位置,例如,对于许多产品
/usr/bin
。此外,它还计算CMake变量
CMake\u PREFIX\u PATH

您有两种可能帮助CMake查找所需文件:

  • 检查您的软件是否正确安装。对于自编软件,通常由
    makeinstall
    或类似程序完成。如果您使用软件包(RPM或deb),则通常会安装这些软件包,并且可以通过
    PATH
    变量找到它们

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

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

    评估顺序 如果系统上有多个版本的库,请将要使用的版本添加到
    CMAKE_PREFIX_PATH
    ,因为变量在系统路径变量之前进行计算

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

    文档 有关CMake如何搜索文件以及顺序的更多详细信息,请参见文档: