Windows + VSCode + CMake 编译

一、前提(你已经满足)

  1. 你有 CMakeLists.txt
  2. 你有 main.cpp
  3. 你装了 MinGW 或 MSVC
  4. 你装了 CMake 命令 (cmd 里输入 cmake --version 能看到版本)

可直接ctrl + shift + P 通过界面进行配置和编译,以下是命令行编译

二、最标准的 3 步编译命令(任何项目都通用)

第 1 步:创建 build 文件夹(存放编译中间文件)

bash 复制代码
mkdir build
cd build

作用:把所有临时文件丢进 build,不污染源码,这是行业标准做法。


第 2 步:CMake 生成构建文件

如果你用 MinGW(最常用)

bash 复制代码
cmake .. -G "MinGW Makefiles"

如果你用 MSVC

bash 复制代码
cmake ..

(MSVC 不用指定生成器,cmake 会自动识别)


第 3 步:编译生成 exe

MinGW

bash 复制代码
mingw32-make

或者

bash 复制代码
make

MSVC

bash 复制代码
cmake --build .

三、编译成功后,运行程序

bash 复制代码
你的项目名.exe

比如你写的是:

cmake 复制代码
add_executable(main main.cpp)

那就运行:

bash 复制代码
main.exe

四、总结

【MinGW 版本】

bash 复制代码
mkdir build
cd build
cmake .. -G "MinGW Makefiles"
mingw32-make
main.exe

【MSVC 版本】

bash 复制代码
mkdir build
cd build
cmake ..
cmake --build .
Debug/main.exe

五、超级重要说明

  1. .. 意思是返回上一级目录(因为 CMakeLists.txt 在上一层)

  2. 所有命令都在 build 文件夹里执行

  3. 第一次执行需要 cmake ..
    之后改代码只需要执行:

    bash 复制代码
    make
    或者
    cmake --build .

通过bat 脚本执行777

1. 新建文件 build_run.bat 放在项目根目录

🔹 MinGW 专用版
bat 复制代码
@echo off
chcp 65001 >nul
:: 清空旧构建缓存
rd /s /q build 2>nul
mkdir build
cd build
:: 生成+编译
cmake .. -G "MinGW Makefiles"
mingw32-make -j4
:: 运行
echo.
echo ========== 程序输出 ==========
main.exe
pause
🔹 MSVC 专用版
bat 复制代码
@echo off
chcp 65001 >nul
rd /s /q build 2>nul
mkdir build
cd build
cmake ..
cmake --build .
echo.
echo ========== 程序输出 ==========
Debug\main.exe
pause

使用方式

  1. 保存后,双击 build_run.bat
  2. 自动删旧缓存 → 重新 CMake → 编译 → 直接运行
  3. 自带 chcp 65001,配合你 CMake 里的 UTF-8 配置,中文永久不乱码

四、日常开发最简操作

  1. 改完代码
  2. 要么:终端敲编译命令
  3. 要么:双击 build_run.bat

五、补充:修改代码后快速重编(不用全删重建)

只改 cpp、不改 CMakeLists.txt 时,不用删 build,直接:

MinGW

cmd 复制代码
cd build
mingw32-make -j4

MSVC

cmd 复制代码
cd build
cmake --build .

速度极快,适合频繁调试。

整套打包模板,你直接新建项目复制就能用吗?

相关推荐
小羊没烦恼!1 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
rockmelodies1 天前
# Windows Server2008 R2 Standard(SP1镜像U盘)重置本地管理员密码【完整详细步骤】
windows·密码破解
kakakahahahaha1 天前
Windows C盘空间不足的安全清理与迁移流程
windows·电脑·笔记本电脑·软件需求·c盘清理
做咩啊~1 天前
远程连接提示:身份验证错误,要求的函数不受支持
windows
2501_915909061 天前
移动端开发工具链怎么组合比较好,iOS、Android、跨端三套配置方案
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
百事牛科技2 天前
PPT只读怎么取消?四种情况分别处理
windows·powerpoint
sunoo-2292 天前
【ARM嵌入式学习笔记Day6】一文打通i.MX6ULL时钟体系:PLL/PFD/预分频+滞回比较器全解析
arm开发·笔记·vscode·单片机·imx6ull·汇编语言
明天…ling2 天前
gitee与vscode远程连接
vscode·gitee
2501_915918412 天前
iOS编程用什么软件好?主流工具Xcode、AppCode、CodeRunner与新兴快蝎对比
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
熊明才2 天前
WSL2 网络突然瘫痪(Network is unreachable / 没有 eth0)最短修复指南(2026年9月20日亲测可用)
linux·windows·wsl2