如何使 VSCode 中 CMake Debug 的输出显示在 cmd 上而不是自带的 debug console

news2024/11/25 4:53:30

如何使 VSCode 中 CMake Debug 的输出显示在 cmd 上而不是自带的 debug console

首先需要明确的一点是从 VSCode 插件商店下载的 CMake 是默认打印输出的结果在 debug console 中的,就像下面这样:

可以看到,一个问题是在加载 dll 时候会频繁的打印在 Debug Console 里面,从而导致我们本来想要输出的内容很难找到,另一方面,我在使用 spdlog 的时候,输出的内容本身是具有颜色的,就像下面这样:

在这里插入图片描述

但是在 Debug Console 中就只能显示成蓝色了,导致强迫症患者巨难受,因此在网上各种找办法,终于找到了解决方法:

那就是放弃 CMake 插件,使用我们从官方下载的 CMake 并且在 VSCode 中添加配置文件之后来进行编译。下面正式开始:

1. 前提条件:

你的电脑已经装有从官方下载的 CMake,VisualStdio ,确保你的电脑上有 msvc 编译环境。

2. 配置 launch.json 文件

如果找不到 launch.json 请 ctrl+Shift+P 然后输入 launch:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PYhjAe3v-1682935719029)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/41909074-033b-4dd6-9f89-9ca843488420/Untitled.png)]

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "msvc",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}/bin/Editor.exe",
            "args": [
                "/Zi",
                "/EHsc",
                "/Fe:"
            ],
            "stopAtEntry": false,
            "cwd": "${workspaceRoot}",
            "environment": [],
            "console": "integratedTerminal",
            "preLaunchTask": "build",
            "logging": {
                "moduleLoad": false
            }
        }
    ]
}

然后像上面一样进行配置即可,name 名字为 msvc,注意 program 为你自己的可执行行程序目录。

我们本次最需要关注的就是 "console": "integratedTerminal", 这条语句表明了我们的控制台选项,一共有三个:

integratedTerminal::VS Code’s integrated terminal. 也就是内置终端

internalConsole::Output to the VS Code Debug Console. 输出到内置控制台

externalTerminal :Console applications will be launched in an external terminal window. 输出到外部终端

三种效果分别为:

请添加图片描述

请添加图片描述

3. 配置 tasks.json 文件

还需要进行任务配置

{
	"version": "2.0.0",
	"tasks": [
		{
			//使用本地默认编译器编译cmake
			"type": "shell",
			"label": "cmake",
			"command": "cmake -B ./build ."
		},
		{
			//使用本地默认编译器编译cmake生成的工程
			"type": "shell",
			"label": "make",
			"command": "cmake --build ./build"
		},
		{
			//依次执行前面两个步骤
			"label": "build",
			"dependsOrder": "sequence",
			"dependsOn": [
				"cmake",
				"make"
			]
		}
	]
}

然后按下 F5 便可以正常编译了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/480640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

82. Python split方法-分割字符串

82. split方法-分割字符串 文章目录 82. split方法-分割字符串1. 什么是split( )函数2. split( )方法的语法格式如下:3. 实操练习4. 列表索引取值知识回顾5. 用split方法分解网址提取有效信息6. 从地址信息中拆分省、市、区信息 1. 什么是split( )函数 split[splɪ…

深度学习模型压缩与优化加速

1. 简介 深度学习(Deep Learning)因其计算复杂度或参数冗余,在一些场景和设备上限制了相应的模型部署,需要借助模型压缩、系统优化加速、异构计算等方法突破瓶颈,即分别在算法模型、计算图或算子优化以及硬件加速等层…

《LearnUE——基础指南:上篇—2》——GamePlay架构之Level和World

目录 听说世界是由多个Level组成的 1.2.1 引言 1.2.2 建造大陆(ULevel) 1.2.3构建世界(World) 1.2.4总结 听说世界是由多个Level组成的 1.2.1 引言 上小节谈到Actor和Component的关系,UE利用Actor的概念组成了世…

GitLab统计代码量

gitlab官方文档:https://docs.gitlab.com/ee/api/index.html 1、生成密钥 登录gitlab,编辑个人资料,设置访问令牌 2、获取当前用户所有可见的项目 接口地址 GET请求 http://gitlab访问地址/api/v4/projects?private_tokenxxx 返回参数 …

【文章学习系列之模型】Non-stationary Transformers

本章内容 文章概况总体结构主要模块Series Stationarization(序列平稳化模块)De-stationary Attention(逆平稳化注意力模块) 实验结果消融实验总结 文章概况 《Non-stationary Transformers:Exploring the Stationarity in Time …

Docker 存储

Docker 存储 docker 默认存储方式docker 持久化存储Volumes (卷)简介推荐使用情况 Bind mounts (绑定挂载)简介推荐使用情况 绑定挂载与卷注意点 docker 非持久化存储tmpfs mounts (tmpfs 挂载)简介推荐使用…

leetcode100——相同的树

文章目录 题目详情分析Java完整代码 题目详情 leetcode100 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例: 分析 主要想法…

vue3头像上传组件

用到了自定义组件v-model的双向绑定使用input的typefile这个原生html元素,通过监听change事件,获取到选择的文件(注意,选择完文件值后,要把这个隐藏的input的typefile元素的value置为空,否则,下…

【关于C++中----异常】

文章目录 一、C语言中处理错误的方式二、C异常概念三、异常的使用3.1 异常的抛出和捕获3.2 异常的重新抛出3.3 异常安全3.4 异常规范 四、自定义异常体系五、C标准库的异常体系六、异常的优缺点 一、C语言中处理错误的方式 C语言中常见的错误类型包括:语法错误、逻…

访问 virtualbox中的mysql

在 mysql.user 中存储这用户可访问的的host地址 select user,host from user;修改访问权限 可以使用sql语句 use mysql; mysql>update user set host % where user root; flush privileges或者使用mysql的权限语句 use mysql; Grant all on *.* to root% identified b…

深入浅出C++ ——异常

文章目录 一、C语言传统的处理错误的方式二、C异常概念三、异常的使用异常的抛出和捕获异常的重新抛出异常安全异常规范 四、自定义异常体系无、C标准库的异常体系六、异常的优缺点 一、C语言传统的处理错误的方式 C语言传统的处理错误的机制: 终止程序&#xff0…

docker打包部署spring boot应用(mysql+jar+Nginx)

文章目录 一、基本准备二、mysql部署二、jar部署三、Nginx部署 一、基本准备 小唐拿的就是之前放置在我们服务器上的应用进行部署,主要就是mysql和jar还有Vue的部署。 目前已经有的是jar、已经打包好的vue 项目参考:小破站数据大屏可视化(…

【IPv6】IPv6有无状态地址分配及IPv6路由

IPv6有无状态区分 有状态可控、可管理。有IP地址管理者,能够识别客户端。根据不同客户端分配对应v6地址,客户端和服务器存在租期及续约。无状态无控、难管理。无IP地址管理者,没人识别客户端。客户端根据网关发送的相同的RA报文内容&#xf…

path/to/sdkmanager --install “cmdline-tools;latest“

执行flutter doctor时、报错Android Studio的命令行工具没有安装& 以及 android-licenses没有同意 其中提示错误语句如标题: path/to/sdkmanager --install "cmdline-tools;latest"之类的, 因为同意条款的时候,日志太多,所以把报错覆盖了.没有截图. 解决方法: …

一个简单的servlet+Jsp+MySQL/Oracle程序

一个简单的servletJspMySQL/oracle程序 1. 创建项目 使用 IDEA 创建一个 Maven 项目. 1.1、File -> New Project Name:javaservlet4 Location:选择要存放的路径 Language:Java Build system:Maven 点击Create按钮 ​​​​​​​1.2、Pom.xml配置 <dependencies…

整数在内存中的存储:原码、反码、补码 大小端字节序

本篇博客会讲解整数在内存中的存储形式&#xff0c;以及整数二进制的3种表示形式&#xff1a;原码、反码、补码&#xff0c;还有大小端的相关知识点。相信读完本篇博客&#xff0c;大家对内存的了解会上一个台阶。 注意&#xff1a;本篇博客讨论的是整数在内存中的存储&#x…

【五一创作】【数学建模】matlab的常用函数运用(1)

文章目录 1. matlab基本常识2. 常用输入输出函数2.1 输出函数2.2 拼接函数&#xff08;字符串的合并&#xff09;2.3 输入函数 3. 求和函数3.1 向量求和3.2 矩阵求和 4. 提取矩阵元素4.1 取第x行第y列的元素4.2 取指定行或列的所有元素4.3 取指定某些行的所有元素 1. matlab基本…

MongoDB聚合操作

文章目录 一、单一聚合二、聚合管道2.1 $match / $project / $count2.2 $limit / $skip / $sort2.3 $group 分组查询2.4 $unwind 展开数组2.5 $lookup 左外连接2.6 $bucket 存储桶 三、MapReduce 提示&#xff1a;以下是本篇文章正文内容&#xff0c;MongoDB 系列学习将会持续更…

域名解析出现错误,该如何解决?

域名作为网络地址&#xff0c;是我们访问网站的必经之路&#xff0c;域名解析就是把你的域名解析成一个ip地址&#xff0c;在使用的过程中遇到域名解析文件异常也是常有的事。如果域名解析出现错误&#xff0c;该怎么解决呢&#xff1f; 一、打开网页时&#xff0c;显示域名解析…

Redis主从复制、哨兵实战

环境&#xff1a;linux centos7.x &#xff0c;虚拟机3台 版本&#xff1a;redis-6.2.6 1.下载安转redis 下载地址 wget https://download.redis.io/releases/redis-6.2.6.tar.gz解压 tar -zxvf redis-6.2.6.tar.gz移动目录 mv redis-6.2.6 /usr/local/redis编译 cd /usr/…