之前都是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. 执行构建

根据构建系统类型选择对应的命令:

方式一:使用 Make(Linux/macOS 默认)

make

方式二:使用 Ninja(Windows/MSYS2 默认)

ninja

🪟 4. Windows 环境(MSYS2)安装 Ninja

如果你的系统提示 ninja: command not found,需要通过 MSYS2 安装:

pacman -S ninja

📹 配置参考视频

MSYS2 环境配置教程

配置要点:

  1. 通过 MSYS2 安装 MinGW64 工具链

  2. 将 mingw64/bin 目录添加到系统环境变量 PATH 中

  3. 验证安装: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 安装 CMake:pacman -S cmake 或下载安装包
ninja: command not found 未安装 Ninja 安装 Ninja:pacman -S ninja
make: command not found 未安装 Make 安装 Make:pacman -S make
编译器未找到 MinGW 未配置 将 mingw64/bin 添加到系统 PATH

💡 小贴士

  1. 清理构建:删除 build 目录重新构建

    rm -rf build
    mkdir build && cd build
    cmake ..
  2. 指定构建类型

    cmake -DCMAKE_BUILD_TYPE=Debug ..   # 调试模式
    cmake -DCMAKE_BUILD_TYPE=Release .. # 发布模式
  3. 指定生成器(强制使用 Make):

    cmake -G "Unix Makefiles" ..

📚 相关资源

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文件

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐