使用Conan和CMake编译SFML时报找不到sfml/2.5.0远程包错误
问题处理方案
你遇到的报错本质是Conan本地配置的远程源中不存在sfml/2.5.0@bincrafters/stable对应的包,按以下步骤操作即可解决:
第一步:配置包源(两种方案二选一即可)
方案A:添加bincrafters远程源
执行以下命令添加对应公共源:
conan remote add bincrafters https://mirrors.cloud.tencent.com/conan/bincrafters/
方案B:改用Conan官方中心源的SFML包
无需额外加源,直接修改conanfile.txt中的[requires]段内容即可:
[requires] sfml/2.5.0
第二步:修正CMakeLists.txt语法错误
你当前的CMakeLists.txt末尾有多余的rtype无效字符串,直接删除即可,修正后的完整内容如下:
cmake_minimum_required (VERSION 3.10) project(projectx) add_executable( ${PROJECT_NAME} src/main.cpp ) target_link_libraries( ${PROJECT_NAME} ${CONAN_LIBS} )
如果使用的是Conan 2.x版本,还需要额外做两处适配:
- 在
conanfile.txt的[generators]段新增CMakeDeps和CMakeToolchain - 后续执行CMake配置时指定工具链文件:
cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
第三步:重新执行编译流程
依次执行以下命令完成全流程编译:
# 创建并进入构建目录 mkdir build && cd build # 安装依赖,缺失的包自动从源码编译 conan install .. --build=missing # 配置CMake cmake .. # 执行编译 cmake --build .
内容的提问来源于stack exchange,提问作者Niewtone
相关产品推荐
相关产品推荐

