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

如何通过CMake编译文件夹中多个C文件并生成对应独立可执行文件

用CMake为单个C文件生成独立可执行文件

当然可以实现这个需求,只需要在CMakeLists.txt里做简单配置,遍历目录下的所有C源文件,逐个生成对应的可执行文件就行。

下面是具体的实现方案:

假设你的工作目录下直接存放着所有C文件(比如1.c、2.c),创建一个名为CMakeLists.txt的文件,内容如下:

# 指定CMake最低版本要求,可根据实际情况调整
cmake_minimum_required(VERSION 3.10)

# 定义项目名称,名字可自定义
project(SingleFileExecs)

# 抓取当前目录下所有的.c文件
file(GLOB ALL_C_FILES *.c)

# 循环处理每个C文件
foreach(C_SOURCE ${ALL_C_FILES})
    # 提取文件名(去掉后缀),作为可执行文件的基础名称
    get_filename_component(EXEC_NAME ${C_SOURCE} NAME_WE)
    # 生成对应可执行文件,默认和源文件同名;如果要.out后缀,改成${EXEC_NAME}.out即可
    add_executable(${EXEC_NAME} ${C_SOURCE})
endforeach()

配置好之后,按照常规的CMake编译流程操作:

  • 新建build目录并进入:mkdir build && cd build
  • 生成构建文件:cmake ..
  • 开始编译:make

编译完成后,每个C文件都会生成对应的独立可执行文件——比如1.c会生成1(Windows下是1.exe),如果把add_executable里的目标名改成${EXEC_NAME}.out,就会得到1.out、2.out这类文件。

小提示:file(GLOB)虽然能自动抓取文件,但如果之后新增了C文件,需要重新运行cmake ..让CMake识别新文件。如果是大型项目,更推荐手动维护源文件列表,避免引入不必要的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:41:07