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

vscode中gcc编译器中文路径调试成功方法

先说结论:

        最终效果:可以实现在该工作区内任意cpp文件编译后生成exe在一处且仅有一个,无论cpp文件什么命名(当然得符合文件命名标准 )( ̄▽ ̄)~*

熟悉vscode的runcode的佬可能就已经猜到我是要走固定编译路径的路子了,yes

一句话概括本文:直接安装 run code 插件后再其设置里将 "cpp": xxxxx $fileNameWithoutExt 中的 $fileNameWithoutExt 都改成想要的exe固定地址即可,对于特殊字符需要再用转义字符修饰 $fileName 属性解决文件名无法带括号之类的特殊符号问题

原理:

cpp在中文路径编译条件一:编译时保证exe文件名和路径不包含中文

根据前人的发现分析

exe文件可以自动生成,也就是说编译的时候是可以出现中文的,问题出现在运行时,由于默认生成的exe文件是“《原先的源文件名称》. exe”,就是exe中出现中文导致无法调试的

于是可以得到条件一:只要在编译时保证exe文件名不包含中文就好了(o゚▽゚)o  

 需要的操作,修改Run code里的Setting.json中的"cpp":里的属性

条件二:修改 launch.json和tasks.json下的路径固定exe生成位置

为了保证exe路径不包含中文,要固定exe只在一处文件夹下生成(用久了也有算法题根本不需要随处生成exe的原因,跑起来就行,多了exe最后还得自己删)

操作:

先修改.vscode里的launch和tasks里的各处,图中位置都要改为固定路径

这两个文件悬浮在' "变量":'上有详细功能注释,方便理解

如果想了解更多可以看我以前的一篇也是这问题的文章,不过当时见识较为浅薄,追求的效果不太大众,大家只用关注解释部分便好了╮(╯﹏╰)╭

1.launch.json

2.tasks.json

2-1:

2-2:

再修改Run code里的Setting.json

  1. 找到Run Code插件的设置
  2. 找到Executor Map
  3. setting.josn中找到"cpp"

原本应该是:

"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

其中 `$fileName`为运行文件名,`$fileNameWithoutExt`为编译和执行路径,将他们分别修改为       \"$fileName\" (实现文件名独立不被特殊字符干扰),和自己在task和launch里选定的生成路径(带有exe)

"cpp": "cd $dir && g++ \"$fileName\" -o C:/Ep/mobile-code/exe/a.exe && C:/Ep/mobile-code/exe/a.exe",//完美还能解决括号问题,无论命名多奇葩都能运行了这下

到此处,以普遍理性而论已经可以运行,记得launch和tasks里还有一些地方是修改g++编译器路径的

launch

tasks,注意一处为具体路径,一处为文件夹路径(不带exe)

完美收工!٩(๑>◡<๑)۶ 

相关文章:

  • 免费送源码:Java+SpringBoot+MySQL SpringBoot网上宠物领养管理系统 计算机毕业设计原创定制
  • zk源码—7.ZAB协议和数据存储一
  • 五子棋(测试报告)
  • Web前端之Vue+Element实现表格动态复杂的合并行功能、localeCompare、forEach、table、push、sort、Map
  • JWT认证服务与授权 .netCore
  • pywebview 常用问题分享
  • HashTable,HashMap,ConcurrentHashMap之间的区别
  • docker的目录挂载与卷映射
  • Nginx部署spa单页面的小bug
  • SQLite + Redis = Redka
  • NCCL使用指南-进阶篇
  • (个人题解)第十六届蓝桥杯大赛软件赛省赛C/C++ 研究生组
  • 架构师面试(二十九):TCP Socket 编程
  • MapStruct复制失败,属性为null,与lombok有关系
  • 【Flink运行时架构】重要概念
  • linux多线(进)程编程——(1)前置知识
  • HTML5/JS/Vue与Java后端技术类比(AI创作)
  • SpringBoot对接火山引擎大模型api实现图片识别与分析
  • 深入理解Liunx文件系统与日志分析
  • 尚硅谷2019版Java网络编程笔记
  • 是否进行了及时有效处置?伤者情况如何?辽阳市相关负责人就饭店火灾事故答问
  • 节前A股持续震荡,“五一”假期持股还是持币过节胜率更高?
  • 我国首部《人工智能气象应用服务办法》今天发布
  • 从咖啡节到话剧、演唱会,上海虹口“文旅商体展”联动促消费
  • 找化学的答案,解人类的命题:巴斯夫的“变革者”成长之道
  • 安阳一村支书微信群骂村民被警方行拘,辩称对方先“污蔑造谣”