CMake 构建 C 语言项目(vscode)

📅 2026/6/25 20:05:21
CMake 构建 C 语言项目(vscode)
之前都是clion的ide中使用这次在vscode中进行使用首先就是创建一个CMakeLists.txt文件把相应内容复制进去然后就是主程序flab.c文件的编写其他文件有就是写入没有就是不用管写好主程序后创建一个build文件夹所有的命令以及生成的临时文件都是在这里面执行 项目结构项目根目录/ ├── CMakeLists.txt # CMake 配置文件 ├── flab.c # 主程序源文件 ├── include/ # 头文件目录 │ ├── flab.h # 主程序头文件 │ ├── utils.h # 工具函数头文件 │ └── config.h # 配置头文件 └── src/ # 源文件目录 └── utils.c # 工具函数实现 1. CMakeLists.txt 配置文件cmake_minimum_required(VERSION 3.10) project(cv1 LANGUAGES C) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) # 添加头文件搜索路径 include_directories(include) # 添加可执行文件及其源文件 add_executable(cv1 flab.c src/utils.c ) # 备选方案自动收集源文件适合小型项目 # file(GLOB SOURCES src/*.c) # add_executable(cv1 flab.c ${SOURCES}) 2. 编译构建步骤2.1 创建并进入构建目录mkdir build cd build为什么要在 build 目录下构建保持项目根目录整洁所有编译产生的临时文件都集中在 build 目录中。2.2 生成构建文件cmake ....的含义表示上级目录即项目根目录。CMake 会在上级目录中寻找CMakeLists.txt文件。2.3 查看构建系统类型执行cmake ..后注意输出的第一行信息-- Building for: Ninja # ✅ 使用 Ninja 构建系统 # 或 -- Building for: Make # ✅ 使用 Make 构建系统完整输出示例[build]# cmake .. -- Building for: Ninja -- The C compiler identification is GNU 16.1.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: D:/msys64/mingw64/bin/cc.exe - skipped -- Detecting C compile features -- Detecting C compile features - done -- Configuring done (2.7s) -- Generating done (0.1s) -- Build files have been written to: H:/codexxuexi/cplus/cLan/temp/cv1/build️ 3. 执行构建根据构建系统类型选择对应的命令方式一使用 MakeLinux/macOS 默认make方式二使用 NinjaWindows/MSYS2 默认ninja 4. Windows 环境MSYS2安装 Ninja如果你的系统提示ninja: command not found需要通过 MSYS2 安装pacman -S ninja 配置参考视频MSYS2 环境配置教程配置要点通过 MSYS2 安装 MinGW64 工具链将mingw64/bin目录添加到系统环境变量PATH中验证安装ninja --version 5. 运行程序构建成功后在build目录下运行生成的可执行文件# Windows ./cv1.exe # Linux/macOS ./cv1 完整流程总结# 1️⃣ 创建构建目录 mkdir build # 2️⃣ 进入构建目录 cd build # 3️⃣ 生成构建文件.. 指向上级目录的 CMakeLists.txt cmake .. # 4️⃣ 执行编译根据构建系统选择 ninja # 或 make # 5️⃣ 运行程序 ./cv1 # Windows: ./cv1.exe⚠️ 常见问题及解决问题原因解决方案cmake: command not found未安装 CMake安装 CMakepacman -S cmake或下载安装包ninja: command not found未安装 Ninja安装 Ninjapacman -S ninjamake: command not found未安装 Make安装 Makepacman -S make编译器未找到MinGW 未配置将mingw64/bin添加到系统 PATH 小贴士清理构建删除build目录重新构建rm -rf build mkdir build cd build cmake ..指定构建类型cmake -DCMAKE_BUILD_TYPEDebug .. # 调试模式 cmake -DCMAKE_BUILD_TYPERelease .. # 发布模式指定生成器强制使用 Makecmake -G Unix Makefiles .. 相关资源CMake 官方文档Ninja 构建系统MSYS2 官网6.后续多程序编译的步骤CMakeLists.txt 配置文件内容增加# 最低cmake版本 cmake_minimum_required(VERSION 3.14) # 项目名指定语言为C project(cv1 LANGUAGES C) # 设置C语言标准使用C11或C99根据你的代码需求 set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) # 生成可执行文件程序名 源码文件 add_executable(cv1 flab.c) #第二个程序---新增内容 # 生成可执行文件程序名 源码文件 add_executable(printfg printfg.c)备注然后在build文件的cmd命令下 继续 cmake.. ,ninja 最后生成exe文件