C++ CMake无法看到SDL2_路径环境变量(Windows)
我想构建一个使用SDL2的项目。我下载了SDL2的windows开发包,将其放到C++ CMake无法看到SDL2_路径环境变量(Windows),c++,windows,cmake,C++,Windows,Cmake,我想构建一个使用SDL2的项目。我下载了SDL2的windows开发包,将其放到D:\lib\SDL2-2.0.10,并将SDL2_路径环境变量设置为该路径 项目用于查找库,其中${SDL2\u PATH}列在SDL2\u搜索路径中 如果我尝试运行CMake,它将无法找到SDL2。环境变量设置正确,我使用powershell中的echo$env:SDL2_PATH进行了检查 但如果我把这一行放在CMakeLists.txt的开头,它就会起作用: set(SDL2_PATH "D:\\lib\\S
D:\lib\SDL2-2.0.10
,并将SDL2_路径
环境变量设置为该路径
项目用于查找库,其中${SDL2\u PATH}
列在SDL2\u搜索路径中
如果我尝试运行CMake,它将无法找到SDL2。环境变量设置正确,我使用powershell中的echo$env:SDL2_PATH
进行了检查
但如果我把这一行放在CMakeLists.txt
的开头,它就会起作用:
set(SDL2_PATH "D:\\lib\\SDL2-2.0.10")
为什么CMake无法看到SDL2\u路径
环境变量?我错了什么?文件查找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
环境变量即可