位置: IT常识 - 正文

04-vscode搭建cmake的编译环境(vscode+cmake)

编辑:rootadmin
04-vscode搭建cmake的编译环境

推荐整理分享04-vscode搭建cmake的编译环境(vscode+cmake),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vscode+cmake,visual studio code cmake,vscode mingw cmake,vsc cmake,vsc cmake,vscode+cmake,vscode cmake msvc,vscode cmake msvc,内容如对您有帮助,希望把文章链接给更多的朋友!

vscode+mingw搭建C/C++环境系列

01.vscode+mingw搭建编译调试环境

02-vscode编译调试单个源文件程序

03-vscode编译调试多个源文件程序

04-vscode搭建cmake的编译环境

文章目录一、简述二、vscode搭建cmake的编译环境(方法1)1.配置cmake构建目录(可忽略)2.选择cmake的构建套件(gcc)3.编写CMakeLists.txt4.启动调试运行三、vscode搭建cmake的编译环境(方法2)1.cmake构建说明2.配置launch.json文件3.配置tasks.json文件4.配置settings.json文件5.启动调试运行一、简述04-vscode搭建cmake的编译环境(vscode+cmake)

前面的文章中提到过通过修改settings.json文件和tasks.json文件可以完成多个源文件程序编译运行,但是如果源文件较多,每次都手动修改编译参数,那么比较麻烦,所以本文讲述下如何在vscode中使用cmake工程。

二、vscode搭建cmake的编译环境(方法1)1.配置cmake构建目录(可忽略)

文件–》首选项–》搜索cmake,配置cmake的一些参数和中间文件路径(可不用设置),如下图:cmake的构建目录在当前的工作区的build的目录下。

2.选择cmake的构建套件(gcc)

未配置cmake工程前, 快捷键: shift+alt+p 输入cmake,选择"CMake Quick Start" 选择cmake的构建套件,这里使用的是gcc mingw 配置cmake工程完后,下面会出现配置选项 1:编译选项:Debug、release、RelWithDebugInfo 2:选择的编译器,GCC 还是VC 3:调试程序

3.编写CMakeLists.txtproject(test)add_executable(test main.cpp add.cpp)

文件结构: build里面存放编译过程中的中间文件,该目录的配置在前面的配置cmake参数,

4.启动调试运行

成功构建cmake工程文件后,可点击下面按钮,进行运行调试

三、vscode搭建cmake的编译环境(方法2)1.cmake构建说明官网上下载一个cmake程序,将安装的cmake的bin目录添加到PATH的环境变量编写简单的CMakeLists.txtproject(test)add_executable(main main.cpp add.cpp)多文件编译调试mkdir build //创建build目录cd build //进入build目录 //如果电脑上已经安装了vs,cmake可能会调用微软的MSVC的编译器, //使用cmake -G "MinGW Makefiles" ../代替 cmake ../ //cmake主要寻找CMakeLists.txt文件cmake ../ //根据CMakeLists.txt文件生成MakeFile文件mingw32-make.exe //根据MakeFile文件编译成可执行的运行程序配置launch.json文件:调试时配置配置tasks.json文件: 调试之前的构建配置2.配置launch.json文件创建launch.json文件 添加调试配置:可以选择 调试程序或者附加到某个进程上调试 launch.json{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "main", // 配置名称,将会在启动配置的下拉菜单中显示 "type": "cppdbg", // 配置类型,这里只能为cppdbg "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加) "program": "${workspaceFolder}/build/main.exe", // 将要进行调试的程序的路径 "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可 "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录 "environment": [], "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台 "MIMode": "gdb", "miDebuggerPath": "C:\\Users\\Admin\\AppData\\Local\\Programs\\mingw64\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应 "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc } ]}

主要参数说明:

program:要调试的程序的全路径名称args:调试时传入的命令行参数“cwd”: “${workspaceFolder}”:调试时进入到当前的工作目录miDebuggerPath:使用的调试器的全路径preLaunchTask:表示调试前需要做的任务操作,"preLaunchTask"中的"build"必须要和tasks.json文件中的label的Value对应,否则在执行调试的时候,无法确认preLaunchTask需要执行什么操作3.配置tasks.json文件

如图所示:在启动调试之前,执行launch.json文件中的preLaunchTask的build时,vscode会去查找对应的tasks.json文件中label为"build",而tasks.json中的build又依赖标签cmake和标签make的操作, tasks.json

{ "tasks": [ { "type":"shell", "label": "cmake", "command":"cmake", "args": [ "../" ], }, { "label": "make", "command":"mingw32-make", "args": [ ], }, { "label": "build", "dependsOn":[ "cmake", "make" ] }, ], "version": "2.0.0", "options": { "cwd": "${fileDirname}/build" },}“label”: “cmake”: 使用命令cmake,根据CMakeLists.txt创建MakeFile文件“label”: “make”: 使用命令mingw32-make,根据MakeFile生成可执行的程序 上述tasks.json文件,表示在每次调试之前都重新构建一次应用程序4.配置settings.json文件{ "code-runner.executorMap": { "javascript": "node", "java": "cd $dir && javac $fileName && java $fileNameWithoutExt", "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "cpp": "cd $dir/build && cmake ../ && mingw32-make && $dir/build/fileNameWithoutExt", }}

将settings.json文件原本cpp编译命令里面的g++,修改为cmake构建工程。

5.启动调试运行

使用vscode里面的调试运行按钮, Run Code: 依赖settings.json 调试C/C++文件: 依赖launch.json和tasks.json文件

本文链接地址:https://www.jiuchutong.com/zhishi/295939.html 转载请保留说明!

上一篇:SAP ABAP——SAP简介(三)【S/4 HANA前端显示界面】(sap abap入门)

下一篇:iframe框架一个页面中嵌套到另外一个页面(如何进行iframe框架切换)

  • 十五个推广引流的方法(2020推广引流技巧)

    十五个推广引流的方法(2020推广引流技巧)

  • 全民k歌下载的音频文件在哪里找(全民k歌下载的歌在哪)

    全民k歌下载的音频文件在哪里找(全民k歌下载的歌在哪)

  • 腾讯视频怎样下载超清视频(腾讯视频怎样下载到电脑桌面上)

    腾讯视频怎样下载超清视频(腾讯视频怎样下载到电脑桌面上)

  • 抖音在线时间怎么关闭(抖音在线时间怎么看)

    抖音在线时间怎么关闭(抖音在线时间怎么看)

  • 苹果xsmax手机怎么查序列号(苹果xsmax手机怎么关闭后应用运行)

    苹果xsmax手机怎么查序列号(苹果xsmax手机怎么关闭后应用运行)

  • clrtc是什么接口(cl1-8d512是什么接口)

    clrtc是什么接口(cl1-8d512是什么接口)

  • 苹果11promax电池能用多久(苹果11promax电池76能多久)

    苹果11promax电池能用多久(苹果11promax电池76能多久)

  • qq群最多多少人(QQ群最多多少人视频聊天)

    qq群最多多少人(QQ群最多多少人视频聊天)

  • 华为有万能遥控器吗(华为智能遥控app下载)

    华为有万能遥控器吗(华为智能遥控app下载)

  • 在win7中记事本的扩展名为(win7中记事本在哪)

    在win7中记事本的扩展名为(win7中记事本在哪)

  • 微信信息没有提示怎么回事(微信发了消息20分钟想撤回)

    微信信息没有提示怎么回事(微信发了消息20分钟想撤回)

  • 抖音可以关注多少人(抖音可以关注多少人一天)

    抖音可以关注多少人(抖音可以关注多少人一天)

  • unity3d用什么语言(unity3d的语言)

    unity3d用什么语言(unity3d的语言)

  • 华莱士微信订单如何取消

    华莱士微信订单如何取消

  • 快手怎么看自己动态(快手怎么看自己的评论历史)

    快手怎么看自己动态(快手怎么看自己的评论历史)

  • 怎么发送大于5g的视频(怎么发送大于4g的文件)

    怎么发送大于5g的视频(怎么发送大于4g的文件)

  • word怎么添加上标(word怎么添加上一页的格式)

    word怎么添加上标(word怎么添加上一页的格式)

  • 电脑登录密码忘记了怎么办(电脑登录密码忘了怎么解除)

    电脑登录密码忘记了怎么办(电脑登录密码忘了怎么解除)

  • 趣键盘怎么发送消息(趣键盘的表情包怎样一键发送)

    趣键盘怎么发送消息(趣键盘的表情包怎样一键发送)

  • wps表格怎样查找内容(wps表格怎样查找替换内容)

    wps表格怎样查找内容(wps表格怎样查找替换内容)

  • 喜马拉雅如何测试声音(喜马拉雅如何测音质)

    喜马拉雅如何测试声音(喜马拉雅如何测音质)

  • steam个人链接在哪(steam个人链接url在哪)

    steam个人链接在哪(steam个人链接url在哪)

  • 陌陌距离前面黄点是什么意思(陌陌距离显示灰色是什么意思)

    陌陌距离前面黄点是什么意思(陌陌距离显示灰色是什么意思)

  • oppo手机分辨率在哪看(oppo手机分辨率最好的是哪一款)

    oppo手机分辨率在哪看(oppo手机分辨率最好的是哪一款)

  • 爱奇艺如何切换账号(爱奇艺如何切换主设备)

    爱奇艺如何切换账号(爱奇艺如何切换主设备)

  • keyword.exe是什么进程 有什么用 keyword进程查询(key是什么文档)

    keyword.exe是什么进程 有什么用 keyword进程查询(key是什么文档)

  • vue路由跳转取消上个页面的请求(vue关闭路由)

    vue路由跳转取消上个页面的请求(vue关闭路由)

  • 资产损失税前扣除及纳税调整明细表
  • 城市维护建设税计算公式
  • 小规模纳税开专票享受季度30万纳税
  • 会计中管理费用和财务费用的区别
  • 当月开票可以当月缴税吗
  • 房地产常用的付款方式有哪三种
  • 代扣代缴的车船税现金流量怎样分配
  • 国有控股企业股权转让
  • 房屋租赁合同样本书
  • 增值税一般纳税人税率
  • 国际货运代理免税备案取消了吗
  • 实物型产品的基础知识
  • 固定资产取得方式A04代号
  • 补缴员工社保银行怎么查
  • 一万元国债一年多少利息
  • 增值税价外费用开票内容
  • 上年未计提所得税会计
  • 预缴企业所得税是含税数还是不含税
  • 出口加工区内企业不能从事的业务有
  • 贸易企业出口退税的操作明细流程
  • 补缴的附加税怎么入账
  • macos usb启动
  • 以前年度损益调整怎么做账
  • 增值税专用发票怎么开
  • 员工垫付款怎么做分录
  • 手机word文档怎么加照片
  • thinkphp yii
  • 暂估入库的处理方式有哪三种
  • 待摊费用和预提费用属于什么账户
  • codeigniter 教程
  • php格式转换
  • PHP:imagecreatefromgd()的用法_GD库图像处理函数
  • 还在用夸克?这3款能安装插件的手机浏览器不香吗_Via_
  • 简单的php文件
  • 钉钉防止撤回
  • uniapp和mpvue比较
  • 总结php删除字符的方法
  • 资产的账面价值大于计税基础
  • 什么是进项税转出成本
  • 域名费用怎么交
  • 图形验证码api
  • 补偿金是否应该上税
  • 发生售后维修领用材料分录
  • 财务费用手续费在借方还是贷方
  • 成本类科目怎么记账
  • 新公司财务需要哪些东西
  • 固定资产折旧计算表模板
  • concat group
  • 建筑发票开具与土增税扣有什么关系?
  • 哪些凭证可以作为原始凭证
  • 一般纳税人商贸公司增值税税负率
  • 银行抵债资产如何更快处置
  • 股东变更实收资本变更吗
  • 公司配股对股价的影响
  • 公司向外借款给个人怎么做账
  • 小规模纳税人开专票税率是多少?
  • 工资分摊计提分配方式?
  • 生产经营年度汇算清缴
  • 怎么建立起来的
  • 结账时怎样根据日期填写
  • centos7关闭kdump
  • xp系统修复怎么操作
  • win7开启远程设置
  • 和大家一起分享一下你读书以后的感受吧
  • js中date对象
  • Extjs grid panel自带滚动条失效的解决方法
  • cocos2djs教程
  • Cocos2dx ParticleEditor粒子编辑器
  • css ie8
  • vue实现分页功能
  • android.intent.extra.text
  • shell脚本自动执行
  • js字段截取
  • 代码实现死锁
  • 税务系统更新不能开发票
  • 江苏网上税务局官网
  • 出口退税申报时闿
  • 开红酒增值税票怎么开
  • 地方文化包括哪几种
  • 资源税条例实施细则
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设