我已使用以下命令安装了库(SDL):
cmake --build . --target install
我在文档中读到安装的软件包将在CMAKE_SYSTEM_PREFIX_PATH
。
但是当我打印出变量时它是空的。
目前我正在使用Windows,我在线阅读我应该在注册表中注册安装路径,但它根本没有帮助。
如何使用find_package()?
找到SDL答案 0 :(得分:0)
尝试一下:
使用get_cmake_property函数,将显示以下循环 列出所有定义的CMake变量及其值:
get_cmake_property(_variableNames VARIABLES) list (SORT _variableNames) foreach (_variableName ${_variableNames}) message(STATUS "${_variableName}=${${_variableName}}") endforeach()
要打印环境变量,请使用CMake的命令模式:
execute_process(COMMAND "${CMAKE_COMMAND}" "-E" "environment")
它打印:
-- CMAKE_SYSTEM_PREFIX_PATH=/usr/local;/usr;/;/usr;/usr/local;/usr/X11R6;/usr/pkg;/opt
(贷记Sakra)
您可以在源树中搜索名为FindSDL*.cmake
的文件,然后尝试在CMAKE_SYSTEM_PREFIX_PATH
目录中找到该文件。
如果CMAKE_SYSTEM_PREFIX_PATH
仍然为空,请尝试在整个计算机中找到FindSDL*.cmake
,以检查文件是否安装在cmake
知道的地方,或尝试将此路径附加到{{1 }}。
您还可以检查以下链接: Using SDL2 with CMake
答案 1 :(得分:0)
我相信这对您不起作用的原因是,您的find_package
文件中的project
命令位于CMakeLists.txt
命令之前。如果确保project
是第一个命令(在cmake_minimum_required(VERSION <NUM>
之后),则所有CMAKE_SYSTEM_***
变量都将正确初始化:)
在遇到完全相同的问题后,我实际上偶然发现了该帖子(请参阅我对第一个问题的评论)。我使用foreach VARIABLES
命令尝试了j4x发布的建议,以打印所有变量,并在我的project
命令之后偶然地将其粘贴。我注意到CMAKE_SYSTEM_PREFIX_PATH
是一个合理的值-然后我将代码移到project
命令上方,并注意到打印出的变量要少得多:P CMAKE_SYSTEM_PREFIX_PATH
哪里也看不到... >
我希望这对您也有用!