CMake find_package()不尊重CMAKE_MODULE_PATH

用户名

我在CMake中检测到软件包(glfw)时遇到问题。由于没有root权限,我无法在标准位置安装该库,因此我将其安装在.local

$ ls ~/.local/lib/cmake/glfw3/glfw3Config.cmake
/home/emil/.local/lib/cmake/glfw3/glfw3Config.cmake

我的CMakeLists.txt组成

cmake_minimum_required(VERSION 3.10.0)
project(test VERSION 1.0 LANGUAGES C CXX)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "$ENV{HOME}/.local")
message("CMAKE_MODULE_PATH: ${CMAKE_MODULE_PATH}")
find_package(glfw3 3.2 REQUIRED)

我使用以下标志执行该命令以确保搜索目录输出:

$ cmake -DCMAKE_FIND_DEBUG_MODE=ON ..

输出:

CMAKE_MODULE_PATH: /home/emil/.local
Checking prefix [/]
Checking file [/glfw3Config.cmake]
Checking file [/glfw3-config.cmake]
Checking prefix [/usr/]
Checking file [/usr/glfw3Config.cmake]
Checking file [/usr/glfw3-config.cmake]
Checking prefix [/opt/thinlinc/]
Checking file [/opt/thinlinc/glfw3Config.cmake]
Checking file [/opt/thinlinc/glfw3-config.cmake]
Checking prefix [/usr/local/]
Checking file [/usr/local/glfw3Config.cmake]
Checking file [/usr/local/glfw3-config.cmake]
Checking prefix [/usr/bin/X11/]
Checking file [/usr/bin/X11/glfw3Config.cmake]
Checking file [/usr/bin/X11/glfw3-config.cmake]
Checking file [/usr/bin/X11/cmake/glfw3Config.cmake]
Checking file [/usr/bin/X11/cmake/glfw3-config.cmake]
Checking prefix [/snap/]
Checking file [/snap/glfw3Config.cmake]
Checking file [/snap/glfw3-config.cmake]
Checking prefix [/opt/puppetlabs/]
Checking file [/opt/puppetlabs/glfw3Config.cmake]
Checking file [/opt/puppetlabs/glfw3-config.cmake]
Checking prefix [/home/emil/]
Checking file [/home/emil/glfw3Config.cmake]
Checking file [/home/emil/glfw3-config.cmake]
Checking prefix [/usr/X11R6/]
Checking prefix [/usr/pkg/]
Checking prefix [/opt/]
Checking file [/opt/glfw3Config.cmake]
Checking file [/opt/glfw3-config.cmake]
CMake Error at CMakeLists.txt:13 (find_package):
  By not providing "Findglfw3.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "glfw3", but
  CMake did not find one.

因此,CMake似乎在很多地方(包括我的主目录)进行搜索,但不在~/.local我实际上不确定为什么。我认为CMAKE_MODULE_PATH应该添加搜索目录。在我的另一台计算机上,它看起来在那里并在运行相同脚本时找到它。错误的机器运行Ubuntu MATE 18.04,并且正在运行一个Ubuntu 18.04。

CMake版本如下。

$ cmake --version
cmake version 3.10.2

我知道我可以将文件移到主目录,但是我不想这样做。

齐瓦列夫

变量CMAKE_MODULE_PATH有助于查找脚本。FindXXX.cmake

用于查找XXXConfig.cmake脚本集CMAKE_PREFIX_PATH变量。(或者使用一些其他的变量find_package搜索算法)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CMAKE_PREFIX_PATH和CMAKE_MODULE_PATH都为空,find_package仍然有效

来自分类Dev

CMake忽略CMAKE_MODULE_PATH

来自分类Dev

覆盖CMake Find_Package

来自分类Dev

覆盖CMake Find_Package

来自分类Dev

cmake的find_package无法找到提升

来自分类Dev

cmake Eigen find_package提示

来自分类Dev

CMake和find_package问题

来自分类Dev

cmake的find_package无法找到提升

来自分类Dev

CMake find_package 找不到 WebSockets

来自分类Dev

我应该在PackageConfig.cmake中修改CMAKE_MODULE_PATH吗

来自分类Dev

用于 libxml2 的 cmake find_package 不返回有效的头目录

来自分类Dev

cmake find_package已安装模块的完整列表

来自分类Dev

CMake的add_sub目录与find_package?

来自分类Dev

在CMake中处理多个FIND_PACKAGE调用

来自分类Dev

命令行等效于cmake的find_package?

来自分类Dev

find_package()在Windows Cmake上未检测到增强

来自分类Dev

CMake为FIND_PACKAGE设置了开始路径吗?

来自分类Dev

cmake使用find_package传播依赖项

来自分类Dev

使外部项目可用于find_package CMake

来自分类Dev

使用`find_package()`排除cmake自己的分发模块

来自分类Dev

CMake find_package对本征不起作用?

来自分类Dev

find_package()在Windows Cmake上未检测到增强

来自分类Dev

CMake find_package可以“知道公共依赖版本”吗?

来自分类Dev

在/usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreMacros.cmake:273(find_package)中的CMake警告:

来自分类Dev

CMake-使用find_package中的变量链接不同的Debug和Release版本库

来自分类Dev

当find_package找不到库时,在cmake-gui中选择路径

来自分类Dev

Windows中使用cmake的find_package的默认搜索路径是什么?

来自分类Dev

cmake-从函数而不是全局范围调用find_package时产生的怪异副作用

来自分类Dev

将cmake与工具链文件交叉编译时如何使用find_package?

Related 相关文章

  1. 1

    CMAKE_PREFIX_PATH和CMAKE_MODULE_PATH都为空,find_package仍然有效

  2. 2

    CMake忽略CMAKE_MODULE_PATH

  3. 3

    覆盖CMake Find_Package

  4. 4

    覆盖CMake Find_Package

  5. 5

    cmake的find_package无法找到提升

  6. 6

    cmake Eigen find_package提示

  7. 7

    CMake和find_package问题

  8. 8

    cmake的find_package无法找到提升

  9. 9

    CMake find_package 找不到 WebSockets

  10. 10

    我应该在PackageConfig.cmake中修改CMAKE_MODULE_PATH吗

  11. 11

    用于 libxml2 的 cmake find_package 不返回有效的头目录

  12. 12

    cmake find_package已安装模块的完整列表

  13. 13

    CMake的add_sub目录与find_package?

  14. 14

    在CMake中处理多个FIND_PACKAGE调用

  15. 15

    命令行等效于cmake的find_package?

  16. 16

    find_package()在Windows Cmake上未检测到增强

  17. 17

    CMake为FIND_PACKAGE设置了开始路径吗?

  18. 18

    cmake使用find_package传播依赖项

  19. 19

    使外部项目可用于find_package CMake

  20. 20

    使用`find_package()`排除cmake自己的分发模块

  21. 21

    CMake find_package对本征不起作用?

  22. 22

    find_package()在Windows Cmake上未检测到增强

  23. 23

    CMake find_package可以“知道公共依赖版本”吗?

  24. 24

    在/usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreMacros.cmake:273(find_package)中的CMake警告:

  25. 25

    CMake-使用find_package中的变量链接不同的Debug和Release版本库

  26. 26

    当find_package找不到库时,在cmake-gui中选择路径

  27. 27

    Windows中使用cmake的find_package的默认搜索路径是什么?

  28. 28

    cmake-从函数而不是全局范围调用find_package时产生的怪异副作用

  29. 29

    将cmake与工具链文件交叉编译时如何使用find_package?

热门标签

归档