位置: 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框架切换)

  • 安卓10.0系统发布时间(安卓10发布)

    安卓10.0系统发布时间(安卓10发布)

  • 苹果11的耳机孔在哪(苹果11的耳机孔是什么样的)

    苹果11的耳机孔在哪(苹果11的耳机孔是什么样的)

  • mate30如何开启微信面容支付(华为mate30手机微信怎么开美颜)

    mate30如何开启微信面容支付(华为mate30手机微信怎么开美颜)

  • 微信聊天不按时间排序(微信聊天不按时间排序怎办)

    微信聊天不按时间排序(微信聊天不按时间排序怎办)

  • ios更新要多久时间(ios更新要多久时间完成)

    ios更新要多久时间(ios更新要多久时间完成)

  • 小米手机夜间模式在哪设置(小米手机夜间模式怎么取消啊)

    小米手机夜间模式在哪设置(小米手机夜间模式怎么取消啊)

  • 腾讯会议可以记录在线时长吗(腾讯会议可以记录进入时间吗)

    腾讯会议可以记录在线时长吗(腾讯会议可以记录进入时间吗)

  • 手机怎样强制关机,不是重启(手机怎样强制关机)

    手机怎样强制关机,不是重启(手机怎样强制关机)

  • 闲鱼付款后卖家不发货钱会自动退回来吗(闲鱼付款后卖家关闭订单说已经卖了)

    闲鱼付款后卖家不发货钱会自动退回来吗(闲鱼付款后卖家关闭订单说已经卖了)

  • 站内信形式是什么意思(什么是站内信)

    站内信形式是什么意思(什么是站内信)

  • 手机屏幕裂了但是还可以用(手机屏幕裂了但是不影响灵敏和显示)

    手机屏幕裂了但是还可以用(手机屏幕裂了但是不影响灵敏和显示)

  • 钉钉平台有没有游戏(钉钉可靠吗)

    钉钉平台有没有游戏(钉钉可靠吗)

  • 快手注销账号的时候没有解绑手机号怎么办(快手注销账号的手机号还能注册吗)

    快手注销账号的时候没有解绑手机号怎么办(快手注销账号的手机号还能注册吗)

  • 钉钉老师可以看到学生聊天记录吗(钉钉老师可以看到学生分屏的内容吗)

    钉钉老师可以看到学生聊天记录吗(钉钉老师可以看到学生分屏的内容吗)

  • 为什么qq关了设备锁还要验证码(qq明明关了设备锁怎么还开着)

    为什么qq关了设备锁还要验证码(qq明明关了设备锁怎么还开着)

  • 怎么给软件加密(华为手机怎么给软件加密)

    怎么给软件加密(华为手机怎么给软件加密)

  • 苹果x为啥来电话越来越小(苹果x来电有时候没声音)

    苹果x为啥来电话越来越小(苹果x来电有时候没声音)

  • 苹果xr怎么下载东西(苹果XR怎么下载超过200m)

    苹果xr怎么下载东西(苹果XR怎么下载超过200m)

  • 华为手环5i怎么开机(华为手环5i怎么开机关机)

    华为手环5i怎么开机(华为手环5i怎么开机关机)

  • 快手魔筷开店收费吗(快手卖货魔筷怎样开通)

    快手魔筷开店收费吗(快手卖货魔筷怎样开通)

  • 闲鱼在哪里搜索用户(闲鱼在哪里搜索添加好友)

    闲鱼在哪里搜索用户(闲鱼在哪里搜索添加好友)

  • 库乐队删除了如何找回(库乐队可不可以删除以前用过的音乐)

    库乐队删除了如何找回(库乐队可不可以删除以前用过的音乐)

  • 嵌入式软件产品的增值税即征即退具体实例
  • 附加税填表说明
  • 空壳公司如何报税
  • 房产赠与税什么时候开始的
  • 先付款后签合同 法律效力
  • 实收资本印花税税率多少
  • 发票金额太大怎么拆分数量,单价不变还是数量不变
  • 财务费用属于什么科目借贷方向
  • 政府补贴在企业怎么申请
  • 电梯合同属于什么合同
  • 工业企业提供劳务收入会计分录
  • 增值税发票验证
  • 研发费用的台账有哪些
  • 损益类科目计入哪个表
  • 企业哪些研发费用可以资本化?
  • 租入生物性资产如何入账
  • 管理费用研发费用科目设置
  • 企业购买商品房限购吗
  • 企业开办费摊销期限的税法规定
  • 固定资产报废需要在固定资产系统中
  • 电子承兑到期提示付款选择线上还是线下
  • 代驾费用入什么二级科目
  • 应收出口退税属于哪个会计科目
  • 一直零申报会怎么样
  • 房地产企业纳税申报需要报哪些报表
  • 税法中的视同行为如何开具发票
  • session失效的方法
  • macbookair怎么设置屏幕
  • 公司自有房屋出租 没有从租计征房产税
  • uniapp intent
  • 投资利润率用什么表示
  • 收到借款金额
  • 购买股票会计分录怎么写
  • php时间戳转换中国标准时间
  • laravel artisan命令
  • 前端cli搭建
  • 变化检测是应用在图像的哪个运算中
  • ai作画
  • 2021所得税季报怎么填
  • 中小型科技企业所面临的普遍问题是资金缺乏
  • 专票认证对企业有影响吗
  • 工程结算期末有余额吗?
  • 企业的净资产都有哪些
  • 小规模季报利润表的本月数怎么报
  • 工厂加工外包
  • 工资不纳税项目
  • 成本核算的科目有哪些
  • mac卸载软件在哪里彻底卸载?
  • 汽车买卖中介
  • 税控系统技术维护费会计处理
  • 印花税缴款了发票怎么查
  • 资产减值损失怎么计提
  • 开经销商公司要多少钱
  • 财务费用贷方余额怎么结转本年利润
  • 现金流量表中支付的各项税费包括
  • 税控盘开具发票怎么冲红?
  • 企业之间土地交易
  • freebsd怎么样
  • linux/unix
  • aow exe是什么
  • ubuntu系统怎么设置不锁屏
  • jquery刷新局部页面
  • node与js的区别
  • linux执行多个脚本
  • 批处理命令实例
  • opengl glu
  • js动态生成页面
  • dos命令遍历文件
  • 文本框css关闭输入框
  • nodejs 读取文件
  • unity3d课程
  • 批处理是什么
  • shell脚本-n
  • unity每帧调用
  • Python编程中装饰器的使用示例解析
  • 江苏昆山电费查询电话
  • 深圳地税局地址工作时间
  • 缴纳车辆购置税的会计处理
  • 企业所得税核定征收和查账征收的区别
  • 外贸公司销售额可以10亿以上吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设