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

CMake执行后Bin目录为空,多CPP编译可执行文件问题排查

问题解决

核心错误:foreach循环变量不匹配

你的CMakeLists.txt中,foreach循环的结束语句使用了未定义的变量SOURCE_FILES,而实际遍历的集合是APP_SOURCES,导致循环逻辑异常,无法生成可执行文件目标。

修正后的循环代码:

file(GLOB APP_SOURCES src/*.cpp)
foreach(SOURCE_PATH ${APP_SOURCES})
    get_filename_component(EXECUTABLE_NAME ${SOURCE_PATH} NAME_WE)
    add_executable(${EXECUTABLE_NAME} ${SOURCE_PATH})
endforeach()

(注:CMake允许endforeach()省略循环变量和集合,或者明确写为endforeach(SOURCE_PATH ${APP_SOURCES}))

关键步骤遗漏:执行编译命令

cmake . -G "MinGW Makefiles"仅负责生成构建系统文件,不会自动编译代码。生成构建文件后,需要执行以下命令完成编译:

mingw32-make

(若环境中make命令可用,也可直接使用make)

执行后,可执行文件会输出到bin目录,第三方库文件会输出到lib目录。

额外检查项

  • 确认src/目录下存在有效的.cpp文件,file(GLOB src/*.cpp)才能匹配到源文件;
  • 若不确定文件是否被匹配,可添加调试参数查看变量内容:
    cmake . -G "MinGW Makefiles" --debug-output
    
    输出中会显示APP_SOURCES的具体内容,验证是否包含预期的源文件路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 02:42:46