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 .

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

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

相关推荐
三品吉他手会点灯2 小时前
STM32 VSCode 开发-与STM32CubeMX协同开发环境搭建
vscode·stm32·单片机·嵌入式硬件
KivenMitnick2 小时前
CialloVOL 1.2:便捷好用的轻量化内存取证分析平台
windows·python·安全·网络安全·flask·系统安全·安全威胁分析
克拉拉KLARA3 小时前
vscode禁用在git提交中插入ai coauthor copilot
git·vscode·copilot
阿昭L3 小时前
使用内核对象进行线程同步
windows·线程同步
张赐荣3 小时前
深入详解在 Python 中用 ctypes 调用 Windows API 清空回收站
开发语言·windows·python
三品吉他手会点灯3 小时前
STM32 VSCode 开发-C语言程序运行后,终端中文乱码
c语言·ide·笔记·vscode·stm32·学习·编辑器
2501_939998203 小时前
Antimalware Service Executable 占用率极高怎么关闭
windows
代码缝合怪3 小时前
解决新版 VSCode 无法 ssh 连接 WSL Ubuntu18.04的问题
ide·vscode·ssh·ubuntu18
H Journey3 小时前
CMakeLists.txt 基本用法实战
cmake·cmakelists