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)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值