当前位置: 首页 > article >正文

解决Mac下Vscode编译运行C语言程序会自动生成DSYM文件夹的问题

🎉 前言

好久没写C语言了,今天打开Vscode打算写点程序练练手,结果发现一个让我非常苦恼的事情,那就是每次我运行程序的时候,左侧的资源管理器就会生成一大堆的文件,如图:
在这里插入图片描述
强迫症犯了,运行一个程序就生成这么一大堆文件,简直是噩梦!

终端输出了以下内容:

 正在执行任务: gcc -Wall -Wextra -g3 /Users/XXX/Documents/C/test.c -o /Users/XXX/Documents/C/output/test 

后来上网查了一下,发现-g3 选项用于生成包含额外调试信息的可执行文件,这也可能导致生成更多相关文件。

于是我打开task.json文件,发现如下配置

"args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],

我发现编译参数确实是’-g’,不是’-g3’啊,这我就纳闷了。

后来阴差阳错之间,我发现每次右下角都会有一个编译成功的提示信息:
在这里插入图片描述
我突然想到,会不会是扩展的问题,于是我点击齿轮按钮并选择“管理扩展”,跳转到以下界面:
在这里插入图片描述
如图,点击扩展设置,进入设置界面:
在这里插入图片描述

哦,原来如此,原来’-g3’是在这里设置的,我们只需要将默认的-Wall -Wextra -g3改为-g0即可。

这里第三点指定了将编译后的文件存储到output文件夹下,这里我没有更改,因为我觉得这个配置挺好的,可以很好的管理我的编译文件,防止和源文件混杂在一起。

再回到源文件,按下’F6’就能正常编译运行,且不会产生一大堆文件了。

🎉 补充

这里补充一点解决问题时的日志,纯粹是个人记录,可以不用在意这一段内容。

1.修改launch.json将外部控制台设置为true,可以使用ctrl+f5或者点击右上角运行按钮,选择最后一个“运行C/C++文件”,此时会调出自带终端,若使用F6则会调出item2(setting.json配置过),同时生成output文件夹。说明前者是按照launch.json文件为依据运行,后者是根据setting.json和扩展complie-run来运行的。

2.若在launch.json中不修改为外部控制台,则ctrl+f5失效,具体体现在会提示以下信息:

在这里插入图片描述在这里插入图片描述

此时即使点击允许还是无法运行,同时还会生成DSYM文件夹(注意不是output文件夹),点击右上角运行按钮的情况一模一样,但是按下f6依然正常工作,同时生成output文件夹,再次印证ctrl+f5f6是根据不同的配置文件来运行程序的

综上:要想既可以通过ctrl+F5的方式运行程序,又可以通过f6运行程序,只需要将launch.json文件里的是否调用外部终端设置为true即可。


http://www.kler.cn/a/313500.html

相关文章:

  • 学法减分交管12123模拟练习小程序源码前端和后端和搭建教程
  • 06.VSCODE:备战大项目,CMake专项配置
  • 【插件】多断言 插件pytest-assume
  • ssm100医学生在线学习交流平台+vue(论文+源码)_kaic
  • uni-app移动端与PC端兼容预览PDF文件
  • CentOS 服务
  • Vue使用代理方式解决跨域问题
  • rancher 图形化界面
  • 用 JS 实现一个发布订阅模式
  • Stable Diffusion绘画 | ControlNet应用-qrcode 二维码控制器:艺术二维码来啦
  • 基于微服务架构的非结构化数据中台设计
  • 网址匹配正则表达式(python实现)
  • SaaS 架构:益处及挑战
  • 安谋科技发布全新自研“玲珑”多媒体处理器
  • macOS 中搭建 Flutter 开发环境
  • 微软发布Windows Agent Arena 为生成式AI代理提供基准测试
  • 动手学习RAG: 大模型向量模型微调 intfloat/e5-mistral-7b-instruct
  • [网络层]-IP协议相关特性
  • 记忆化搜索专题——算法简介力扣实战应用
  • JavaScript 与 Java 的继承有何区别?-----原型继承,单继承有何联系?
  • 微信小程序/uniapp 程序分包处理,小程序性能优化
  • 错题集锦之C语言
  • NumPy库学习之argmax函数
  • C++【类和对象】(一)
  • 数据结构--图
  • k8s的基础