vscode怎么执行cmake vscode编译c++项目配置

发布时间 - 2025-07-14 00:00:00    点击率:

在 #%#$#%@%@%$#%$#%#%#$%@_e2fc++805085e25c9761616c00e065bfe8 中配置并使用 cmake 编译 c++ 项目的方法如下:1. 安装 cmake、c/c++ 编译器、vscode 的 c/c++ 插件和 cmake tools 插件;2. 在项目根目录下创建 cmakelists.txt 文件,定义项目名称、c++ 标准和源文件;3. 打开项目后通过状态栏选择合适的编译器套件,自动生成 settings.json、tasks.json 和 launch.json 等配置文件;4. 使用命令面板或状态栏按钮执行 configure、build、run、clean/rebuild 等操作进行构建与运行;5. 如需调试,可在 launch.json 中配置调试器路径和参数。整个流程自动化程度高,配置完成后可高效地构建和调试项目。

在 VSCode 中执行 CMake 并配置编译 C++ 项目,其实并不复杂。只要把几个关键文件配好,就能像用 IDE 一样方便地构建和调试项目。


1. 安装必要的工具链

首先确保你本地已经安装了以下几样东西:

  • CMake:用于管理项目的构建流程。
  • C/C++ 编译器:比如 GCC(Linux/macOS)或者 MSVC(Windows),Mac 上也可以用 Clang。
  • VSCode 的 C/C++ 插件:微软官方的 C/C++ 扩展,支持智能提示、调试等功能。
  • CMake Tools 插件:这是 VSCode 上专门用来配合 CMake 的插件,能自动识别 CMakeLists.txt 并提供构建、配置选项。

安装完成后,在终端输入 cmake --versiong++ --version(或 clang++)确认是否正常识别。


2. 准备 CMakeLists.txt 文件

这是 CMake 的核心配置文件,告诉它怎么构建你的项目。一个最简单的例子如下:

cmake_minimum_required(VERSION 3.10)
project(MyProject)

set(CMAKE_CXX_STANDARD 17)

add_executable(myapp main.cpp)

如果你有多个源文件,可以这样写:

add_executable(myapp main.cpp utils.cpp helper.cpp)

这个文件要放在项目根目录下,VSCode + CMake Tools 插件会自动识别它。


3. 配置 VSCode 的构建环境

打开项目后,点击左下角的状态栏上可能显示的 “No Kit” 或者 “Configure”,然后选择合适的编译器和构建套件。

接下来会在 .vscode 目录下生成几个配置文件,其中最重要的是:

  • settings.json:一些全局设置,比如默认的编译器路径。
  • tasks.json:定义构建任务。
  • launch.json:调试配置。
  • CMakeToolsUserPresets.json(可选):保存不同的构建配置。

通常你不需要手动修改这些文件,CMake Tools 插件会帮你处理大部分工作。


4. 构建与运行

使用 CMake Tools 插件后,你可以通过命令面板(Ctrl+Shift+P)选择以下操作:

  • CMake: Configure:配置项目,第一次运行时会创建 build 目录并生成 Makefile。
  • CMake: Build:开始编译,生成可执行文件。
  • CMake: Run:运行生成的程序。
  • CMake: Clean / Rebuild:清理或重新构建。

也可以直接点击右下角的状态栏按钮来快速构建和运行。


5. 调试设置(launch.json)

如果你想调试程序,可以在 .vscode/launch.json 中添加类似下面的配置:

{
    "type": "cppdbg",
    "request": "launch",
    "program": "${workspaceFolder}/build/myapp",
    "args": [],
    "stopAtEntry": false,
    "cwd": "${workspaceFolder}",
    "environment": [],
    "externalConsole": false,
    "MIMode": "gdb",
    "setupCommands": [
        {
            "description": "Enable pretty-printing for gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
        }
    ],
    "miDebuggerPath": "/usr/bin/gdb"
}

注意根据自己的系统路径调整 programmiDebuggerPath


基本上就这些步骤了。整个流程虽然看起来有点多,但一旦配置完成,之后每次改动代码只需要点一下“Build”就能重新编译,非常方便。关键是别漏掉 CMakeLists.txt 和插件这两个环节,不然容易卡住。


# linux  # vscode  # windows  # 工具  # ai  # c++  # macos  # cos  # red  # json  # ide  # 自动化  # 这是  # 几个  # 配置文件  # 状态栏  # 自动识别  # 套件  # 自己的  # 放在  # 你可以  # 就能 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 浅述节点的创建及常见功能的实现  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  如何在万网开始建站?分步指南解析  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何在宝塔面板创建新站点?  Laravel模型事件有哪些_Laravel Model Event生命周期详解  个人摄影网站制作流程,摄影爱好者都去什么网站?  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  如何在Windows环境下新建FTP站点并设置权限?  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  如何快速搭建高效可靠的建站解决方案?  如何在万网自助建站中设置域名及备案?  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  JavaScript如何实现类型判断_typeof和instanceof有什么区别  在Oracle关闭情况下如何修改spfile的参数  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  Laravel如何创建自定义中间件?(Middleware代码示例)  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  JS去除重复并统计数量的实现方法  使用C语言编写圣诞表白程序  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  ,在苏州找工作,上哪个网站比较好?  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  如何用景安虚拟主机手机版绑定域名建站?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Python正则表达式进阶教程_复杂匹配与分组替换解析  用yum安装MySQLdb模块的步骤方法  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  创业网站制作流程,创业网站可靠吗?  JavaScript如何实现倒计时_时间函数如何精确控制  高端智能建站公司优选:品牌定制与SEO优化一站式服务  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  做企业网站制作流程,企业网站制作基本流程有哪些?  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  Linux系统命令中tree命令详解  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Laravel怎么使用artisan命令缓存配置和视图  Laravel怎么实现验证码(Captcha)功能  5种Android数据存储方式汇总