CMake 看不到SDL2_PATH环境变量 (Windows)
CMake can not see SDL2_PATH environment variable (Windows)
我想构建一个使用 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
环境变量即可。
相关文章:
- 枚举环境变量的惯用C++14/C++17方法
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 定义C++新的环境变量并在 bat 文件中使用它
- docker 构建失败:无法设置环境变量
- 如何在不传递命令行参数的情况下在 c++ 中设置环境变量
- C++环境变量
- 在编译时为运行时设置环境变量
- 如何使用可视化代码和平台IO将环境变量注入CPP文件?
- 访问 PlatformIO 中的外部环境变量
- WSL 看不到环境变量
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 注册 TBB 的环境变量
- CMake 看不到SDL2_PATH环境变量 (Windows)
- C++ - 我需要一个宏或环境变量来检测我何时在 Windows 上运行 bazel
- 如何在Qt5中使用Windows环境变量
- 如何在安装MinGW (Windows 32位)时设置环境变量PATH
- 如何在MSYS上访问windows环境变量
- 在Windows 7下运行MinGW gcc编译器,不设置环境变量
- 如何完全清除所有的用户环境变量在Windows c++
- Win32释放环境变量导致Windows断点