CMake 看不到SDL2_PATH环境变量 (Windows)

CMake can not see SDL2_PATH environment variable (Windows)

本文关键字:Windows 环境变量 PATH 看不到 SDL2 CMake      更新时间:2023-10-16

我想构建一个使用 SDL2 的项目。我下载了 SDL2 的 Windows 开发包,将其放到D:libSDL2-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环境变量?我做错了什么?

FindSDL2.cmake文件查找 CMake 变量${SDL2_PATH},您必须自己在 CMake 文件中定义该变量。如果不定义它,此变量将为。请参阅此文件中的代码:

SET(SDL2_SEARCH_PATHS
~/Library/Frameworks
/Library/Frameworks
/usr/local
/usr
/sw # Fink
/opt/local # DarwinPorts
/opt/csw # Blastwave
/opt
${SDL2_PATH}
)

我们可以告诉 CMake 使用ENV语法读取环境变量,以便将环境变量的内容导入 CMake。

因此,请尝试将其放在CMake的开头:

set(SDL2_PATH $ENV{SDL2_PATH})

FindSDL2.cmake文件读取SDL2DIR环境变量。因此,无需在 CMake 文件中设置SDL2_PATH,只需设置SDL2DIR环境变量即可。