真正解决VScode C\C++中文路径无法运行问题

1 篇文章 0 订阅
1 篇文章 0 订阅

真正解决VScode C\C++中文名无法运行问题

文章发出去没多久就有一些朋友问我如何解决中文名调试无视断点的问题,我这里说一下,VSC的C\C++插件里jdb调试程序本身就是不支持中文名称的,这也没办法,不过大家可以专门创立一个0Debuger.c文件(0是为了让他在最前面显示),程序的调试和改错现在这里搞定,然后ctrl+a+c全选复制,在粘贴过去就OK了。大多数情况写一些小程序用不到断点调试,需要的话几个键复制过去也并不是很麻烦

正文

之前一直深受这个问题困扰,只要路径名称存在中文就会运行报错,显示无法找到目标文件,后来看了好多解答,都说没办法从根本上解决。
既然没有人能解答我,只好自己想办法。然后就想出来办法了
起因是发现按下调试的时候,exe文件可以自动生成,也就是说编译的时候是可以出现中文的,问题出现在运行时,由于默认生成的exe文件是“《原先的源文件名称》. exe”,就是exe中出现中文导致无法调试的在这里插入图片描述
问题就在这里在这里插入图片描述
生成了含有中文路径的exe,用过文本编辑器+DOS命令gcc编译方式的小伙伴肯定都知道,DOS下直接编译.c文件,生成的exe文件名称总是“a.exe”,想到这里我突然就灵光闪现,我们换一种思维,尝试让他生成的exe文件默认名称是一个英文名称
打开vscode(就是VSC的那个工作文件夹)里的task.json,
在这里插入图片描述
在这里插入图片描述

由于我完全没学过json语言,所以完全是自己摸索,我看到那个注释,以及那个“${file}”,我就猜测他意思可能是源文件的文件名,所以我直接把引号里面“${file}.exe”替换为“a.exe”,当然如果工作区还需要别的文件夹的话就替换成&{fileDirname}\\a.exe,结果就是你在调试任何源文件的时候都会生成名为a.exe的程序,如果之前已经生成过了一个a.exe,新生成的a.exe会把原先的覆盖,所以不用担心引起冲突。
这里多说一句,其实这还有一个好处,就是避免你的工作文件夹里有好几个.exe文件,看起来会比较干净,如图,文件里只会有一个.exe
在这里插入图片描述
然后我兴冲冲去调试,发现TMD没有把对应的运行程序名也改过来。
所以同理,打开launch.json,在我的几番观察后,我认为那个${fileDirname}应该代表的是工作文件目录的意思,所以我们把这里的"${file}.exe"改成"${fileDirname}\a.exe",
在这里插入图片描述
更改后:
在这里插入图片描述

然后运行我们包含中文名称的源文件:
在这里插入图片描述

OHHHHHHHHHHHHHHHHHHH!

成功辽成功辽!

  • 90
    点赞
  • 170
    收藏
    觉得还不错? 一键收藏
  • 40
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值