我想构建一个使用SDL2的项目。我下载了SDL2的Windows开发包,将其放在def recursive_sumrange(start, stop):
if start > stop:
return sum([i for i in range(stop, start + 1)])
else:
return sum([i for i in range(start, stop + 1)])
print(recursive_sumrange(int(input("Enter start: ")), int(input("Enter stop: "))))
中,并将D:\lib\SDL2-2.0.10
环境变量设置为此路径。
该项目使用FindSDL2.cmake查找库,其中SDL2_PATH
在${SDL2_PATH}
中列出。
如果我尝试运行CMake,它将找不到SDL2。环境变量设置正确,我在Powershell中使用SDL2_SEARCH_PATHS
进行了检查。
但是我将这一行放在echo $env:SDL2_PATH
的开头,然后就可以了:
CMakeLists.txt
为什么CMake无法看到set(SDL2_PATH "D:\\lib\\SDL2-2.0.10")
环境变量?我怎么了?
答案 0 :(得分:1)
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
语法读取environment variable,以便将环境变量的内容导入CMake。
因此,请尝试将其放在CMake的开头:
set(SDL2_PATH $ENV{SDL2_PATH})
FindSDL2.cmake
文件确实读取了SDL2DIR
环境变量。因此,您无需设置CMake文件中的SDL2_PATH
,而只需设置SDL2DIR
环境变量即可。