我在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] 删除。
我来说两句