CMake 看不到 SDL2_PATH 环境变量(Windows)
Posted
技术标签:
【中文标题】CMake 看不到 SDL2_PATH 环境变量(Windows)【英文标题】:CMake can not see SDL2_PATH environment variable (Windows) 【发布时间】:2019-12-03 23:04:12 【问题描述】:我想构建一个使用 SDL2 的项目。我下载了SDL2的windows开发包,放到D:\lib\SDL2-2.0.10
,并将SDL2_PATH
环境变量设置为这个路径。
项目使用FindSDL2.cmake查找库,其中$SDL2_PATH
列在SDL2_SEARCH_PATHS
中。
如果我尝试运行 CMake,它无法找到 SDL2。环境变量设置正确,我在powershell中用echo $env:SDL2_PATH
检查过。
但是我把这行放在CMakeLists.txt
的开头,然后就可以了:
set(SDL2_PATH "D:\\lib\\SDL2-2.0.10")
为什么 CMake 看不到 SDL2_PATH
环境变量?我哪里错了?
【问题讨论】:
【参考方案1】:FindSDL2.cmake
文件查找 CMake 变量 $SDL2_PATH
,您必须自己在 CMake 文件中定义该变量。如果不定义它,这个变量将是empty。请参阅此文件中的代码:
SET(SDL2_SEARCH_PATHS
~/Library/Frameworks
/Library/Frameworks
/usr/local
/usr
/sw # Fink
/opt/local # DarwinPorts
/opt/csw # Blastwave
/opt
$SDL2_PATH
)
我们可以告诉 CMake 使用 ENV
语法读取 environment variable,以便将环境变量的内容导入 CMake。
因此,请尝试将其放在 CMake 的开头:
set(SDL2_PATH $ENVSDL2_PATH)
FindSDL2.cmake
文件确实读取了SDL2DIR
环境变量。因此,您可以简单地设置 SDL2DIR
环境变量,而不是在 CMake 文件中设置 SDL2_PATH
。
【讨论】:
以上是关于CMake 看不到 SDL2_PATH 环境变量(Windows)的主要内容,如果未能解决你的问题,请参考以下文章