我已使用以下命令安装了库(SDL):
cmake --build . --target install
我在文档中读到安装包将在CMAKE_SYSTEM_PREFIX_PATH
中注册。
但是当我打印出变量时它是空的。
目前我正在使用Windows,我在网上看到我应该在注册表中注册安装路径,但它根本没用。
我怎样才能找到带有find_package()的SDL?
试试这个:
使用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
知道的文件是否正在安装或尝试将此路径附加到CMAKE_SYSTEM_PREFIX_PATH
。
您还可以查看以下链接:Using SDL2 with CMake
我认为这不适合你的原因是因为你的find_package
命令出现在你的project
文件中的CMakeLists.txt
命令之前。如果你确保project
是第一个命令(在cmake_minimum_required(VERSION <NUM>
之后),那么所有的CMAKE_SYSTEM_***
变量都将被正确初始化:)
在遇到完全相同的问题后,我偶然发现了这篇文章(请参阅我对初始问题的评论)。我尝试了j4x使用foreach VARIABLES
命令发布的建议来打印所有变量,并在我的project
命令之后偶然粘贴它。我注意到CMAKE_SYSTEM_PREFIX_PATH
是一个明智的价值 - 然后我把代码移到了project
命令之上,注意到打印的变量少得多:P CMAKE_SYSTEM_PREFIX_PATH
无处可见......
我希望这也适合你!