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

  • 夏天空调开多少度省电(夏天空调开多少度)(夏天空调开多少度最凉快)

    夏天空调开多少度省电(夏天空调开多少度)(夏天空调开多少度最凉快)

  • 苹果xr怎么设置桌面悬浮窗(苹果xr怎么设置nfc门禁卡)

    苹果xr怎么设置桌面悬浮窗(苹果xr怎么设置nfc门禁卡)

  • 微信白条闪付无法正常使用(白条闪付微信怎么用不了)

    微信白条闪付无法正常使用(白条闪付微信怎么用不了)

  • 华为应用验证失败(华为应用验证失败建议安装官方)

    华为应用验证失败(华为应用验证失败建议安装官方)

  • 付款码多久失效(支付宝向商家付款码多久失效)

    付款码多久失效(支付宝向商家付款码多久失效)

  • 淘宝账户已被保护什么意思(淘宝账户已被保护多久会恢复)

    淘宝账户已被保护什么意思(淘宝账户已被保护多久会恢复)

  • 令牌环网中某个站点能发送帧是因为(令牌环网中某个站点能发送信息是因为)

    令牌环网中某个站点能发送帧是因为(令牌环网中某个站点能发送信息是因为)

  • 手机卡补卡要回本地吗(手机卡补卡回来不想要了,可以注销吗)

    手机卡补卡要回本地吗(手机卡补卡回来不想要了,可以注销吗)

  • 个人计算机必备的外部设备是什么(个人计算机必备知识)

    个人计算机必备的外部设备是什么(个人计算机必备知识)

  • 拼多多转化率怎么算(拼多多转化率怎么看)

    拼多多转化率怎么算(拼多多转化率怎么看)

  • 账号异常是怎么回事(账号异常怎么解除)

    账号异常是怎么回事(账号异常怎么解除)

  • 候补抢票能抢到吗(候补抢票能抢到什么时候)

    候补抢票能抢到吗(候补抢票能抢到什么时候)

  • 三星s系列和a系列区别(三星s系列和a系列的区别)

    三星s系列和a系列区别(三星s系列和a系列的区别)

  • 抖音为什么有的视频不能保存本地(抖音为什么有的人不显示ip属地)

    抖音为什么有的视频不能保存本地(抖音为什么有的人不显示ip属地)

  • 苹果xs max和苹果11pro max屏幕一样大吗(苹果xs max和苹果11对比哪个好)

    苹果xs max和苹果11pro max屏幕一样大吗(苹果xs max和苹果11对比哪个好)

  • 个人热点低数据什么意思(个人热点低数据怎么关闭)

    个人热点低数据什么意思(个人热点低数据怎么关闭)

  • oppo手机实况模式在哪(oppo的实况)

    oppo手机实况模式在哪(oppo的实况)

  • 手机爱奇艺怎么取消广告(手机爱奇艺怎么出示二维码让别人登录)

    手机爱奇艺怎么取消广告(手机爱奇艺怎么出示二维码让别人登录)

  • vlookup函数对账教程(vlookup函数对账的使用方法及实例)

    vlookup函数对账教程(vlookup函数对账的使用方法及实例)

  • iphonex有广角镜头吗(iphone x广角镜头)

    iphonex有广角镜头吗(iphone x广角镜头)

  • 转转保证金怎么退(转转保证金怎么申请退回来)

    转转保证金怎么退(转转保证金怎么申请退回来)

  • 手机卡贴怎么安装(卡贴怎么安装?)

    手机卡贴怎么安装(卡贴怎么安装?)

  • 不打开微信步数会更新吗(不打开微信步数会变化吗)

    不打开微信步数会更新吗(不打开微信步数会变化吗)

  • 华为折叠双屏什么上市(华为折叠屏怎么使用双屏)

    华为折叠双屏什么上市(华为折叠屏怎么使用双屏)

  • steam初始邮箱能改吗

    steam初始邮箱能改吗

  • 阿里巴巴如何一键传淘宝(阿里巴巴如何一件起批)

    阿里巴巴如何一键传淘宝(阿里巴巴如何一件起批)

  • 直连路由、静态路由、动态路由(直连路由,静态路由)

    直连路由、静态路由、动态路由(直连路由,静态路由)

  • JAVAFile类以及怎么在目录不存在的情况下创建文件(javafiles)

    JAVAFile类以及怎么在目录不存在的情况下创建文件(javafiles)

  • 用友T6自定结转怎样设置
  • 可转债中签后怎么操作卖出
  • 运输服务属于生产劳务吗
  • 小规模企业申报时间
  • 一般纳税人跨月红冲专票怎么报税
  • 本年收益的会计处理
  • 车船抵扣如何填报
  • 增值税小规模纳税人优惠政策
  • 个人所得税app是什么意思
  • 发票普票一个月能开多少
  • 支票取现的用途
  • 企业租赁集体土地种植经济林如何补偿
  • 把扣款挂到其它应收款的会计分录怎么做?
  • 售后回租是否确认收入
  • 哪些项目需要征税
  • 投资性房地产房租计入什么会计科目
  • 发票认证后1年还能用吗
  • 过路费去年的票还可以用吗
  • 一般纳税人企业要交哪些税
  • 教育附加费和地方教育附加费的计算
  • 高速公路通行费抵扣最新规定
  • 维修税控设备分录
  • 期初存货余额在哪张表里
  • 专票的六位开票代码指的是什么
  • 应收账款形成的内部原因和外部原因
  • 收据怎么写比较规范
  • 利润表中的其他综合收益
  • 实收资本账户的核算内容是什么
  • mmc.exe是什么进程
  • u盘显示0字节修改不了
  • PHP:pg_connection_busy()的用法_PostgreSQL函数
  • php冒泡法排序
  • 固定资产进项税额一次性抵扣
  • 从价计征房产税如何计算
  • 购入电脑可以入成本里吗
  • 将时间序列转化为图像
  • javascript基础类型
  • 发票确认平台勾选步骤
  • 小规模纳税人征收方式
  • 客户不要的专票我们可以不作废吗
  • 商品流通企业物流成本的具体构成包括()
  • 员工出国公司要承担的责任
  • 建筑企业异地预缴增值税计算
  • 买轿车产生的服务费用
  • sql有数据保护功能
  • 收到法院款项如何做账
  • 农副产品免税了还需要缴纳个人所得税吗
  • 代收电费增值税品目
  • MYSQL的select 学习笔记
  • sql死锁的简单例子
  • 客户货款打到私人微信,删除公司电脑数据
  • 帐务处理程序
  • 其他应收款怎么冲平会计分录
  • 以前年度损益调整是什么意思
  • 防伪税控服务费计入什么科目
  • 建筑图纸设计费多少钱
  • 投资收益期末余额在借方还是贷方
  • 电汇凭证有效期
  • mysql多字段排序原理
  • mysql数据库遇到的故障及分析
  • win8桌面图标不显示
  • window7qq登录失败
  • ubuntu login用户名
  • w10安装软件提示
  • 桌面预览怎么设置
  • cocos2dx游戏开发进阶卷这本书怎么样
  • cocos2dx4.0教程
  • bootstrap4和3
  • python进阶视频
  • python 初级
  • python 的多线程
  • javascript面向对象 第三方类库
  • js拖拽排序实现思路
  • 工会经费什么时候交
  • 注会证可以挂靠吗?挂靠合法吗?
  • 进口设备如何交税
  • a类棉b类棉c类的区别
  • 北京纳税申报的具体流程
  • 工资个人所得税法
  • 怎样查询上一年的国税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设