You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CMake导入SFML到C++项目时出错,求基础排查指导

解决CMake导入SFML时的"IN_LIST"参数错误

错误原因

你指定的CMake最低版本是3.0,但IN_LIST这个条件判断语法是CMake 3.12才正式引入的。SFML的配置脚本(SFMLConfig.cmake)用到了这个语法,旧版本CMake无法识别,直接导致编译报错。

修复步骤

  1. 升级CMake版本:下载安装CMake 3.12或更高版本(推荐3.16及以上,对现代C++和vcpkg的兼容性更好)
  2. 修改CMakeLists.txt的最低版本要求:
    把第一行的cmake_minimum_required(VERSION 3.0)替换成:
    cmake_minimum_required(VERSION 3.12)
    
  3. (可选)移除手动设置的SFML_DIR:
    你已经通过vcpkg的toolchain文件管理依赖,手动指定SFML_DIR反而可能引发路径冲突,直接删掉set(SFML_DIR "C:/vcpkg/...")这一行即可。

修改后的完整CMakeLists.txt

cmake_minimum_required(VERSION 3.12)

project(hello_sfml)

set(CMAKE_CXX_STANDARD 14)

set(CMAKE_TOOLCHAIN_FILE "C:/vcpkg/vcpkg-master/scripts/buildsystems/vcpkg.cmake")

find_package(SFML REQUIRED graphics window system)

add_executable(SFMLExample test.cpp)

target_link_libraries(SFMLExample sfml-graphics sfml-window sfml-system)

额外注意

修改完成后,删除之前生成的build目录,重新运行CMake配置命令,避免旧缓存残留导致的问题。

内容的提问来源于stack exchange,提问作者Emre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:32:38