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

使用CMake add_subdirectory()外置构建SDL_image遇阻求助

解决SDL_image通过add_subdirectory构建时的in-tree build错误

你遇到的问题本质是cmake命令的执行位置错误:你在根源码目录(包含lib和build的目录)下运行cmake . -G "MinGW Makefiles",导致全局变量CMAKE_SOURCE_DIR(根CMakeLists.txt所在目录)与CMAKE_BINARY_DIR(cmake执行目录)完全相同,触发了SDL_image中检查这两个全局变量是否相等的判断逻辑——哪怕你给add_subdirectory指定了子目录的构建路径,全局变量的状态不会改变。

正确操作步骤:

  • 进入build目录:
    cd build
    
  • 在build目录内执行cmake命令,将根源码目录作为源路径传入:
    cmake .. -G "MinGW Makefiles"
    
  • 主CMakeLists.txt可保持如下内容(也可指定SDL_image的构建文件输出路径):
    cmake_minimum_required(VERSION 3.13)
    project(test)
    # 可选:将SDL_image的构建文件输出到build/sdl_image目录
    add_subdirectory(lib/sdl_image sdl_image)
    

这样操作后,CMAKE_SOURCE_DIR指向根源码目录,CMAKE_BINARY_DIR指向build目录,二者不相等,SDL_image的错误判断不会触发,构建可正常进行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:33:19