CMake无法找到SDL2:Windows编译Voraldo13项目的问题求助
解决Voraldo13项目CMake找不到SDL2的问题
一、SDL2版本选择
直接用你下载的2.26.4版本即可,这个版本和项目最后更新日期匹配,兼容性最稳妥,无需更换其他版本。注意别只下载SDL2.dll,要下载包含头文件和库文件的完整开发包(比如Windows平台的SDL2-devel-2.26.4-VC.zip)。
二、文件放置与CMake配置方法
方法1:用vcpkg快速集成(推荐)
如果使用Visual Studio,借助vcpkg包管理器可以自动处理依赖:
- 打开Visual Studio终端,执行:
(32位环境替换为vcpkg install sdl2:x64-windowsx86-windows) - 配置CMake时,添加工具链参数:
或者直接在Visual Studio中开启vcpkg集成,CMake会自动识别SDL2。-DCMAKE_TOOLCHAIN_FILE=[你的vcpkg路径]/scripts/buildsystems/vcpkg.cmake
方法2:手动指定路径
不想用包管理器的话,按以下步骤操作:
- 解压SDL2开发包到固定路径,比如
C:\SDL2或项目根目录下的thirdparty/SDL2 - 配置CMake时,手动传入SDL2的路径参数:
也可以在Visual Studio的CMake设置界面,直接填写这几个变量的对应路径。-DSDL2_INCLUDE_DIR=[SDL2解压路径]/include -DSDL2_LIBRARY=[SDL2解压路径]/lib/x64/SDL2.lib -DSDL2MAIN_LIBRARY=[SDL2解压路径]/lib/x64/SDL2main.lib
方法3:系统级安装
将SDL2的头文件放到系统默认include目录(如C:\Program Files (x86)\Windows Kits\10\Include),库文件放到系统lib目录,CMake会自动搜索到对应文件。
三、关于项目CMakeLists.txt的查找逻辑
这类项目通常用find_package(SDL2 REQUIRED)来查找依赖,CMake的搜索优先级为:
- 手动指定的路径参数
- CMake缓存中保存的路径
- 系统环境变量指向的路径
- 标准系统目录
不用纠结看不懂CMakeLists.txt的细节,按上述方法指定路径即可让CMake成功识别SDL2。
内容的提问来源于stack exchange,提问作者Aubrey
相关产品推荐
相关产品推荐

