问题
最近使用VSCode运行C++代码,弹出错误提示:No such file or directory。猜测可能是因为中文路径的问题。
原因
- 排查后发现,确实是因为项目是中文路径的原因,安装的编译器不支持路径含中文。
只要路径名称存在中文就会运行报错,显示无法找到目标文件,后来看了好多解答,都说没办法从根本上解决。
解决方案
于是想到两个解决方案
- 试着能否解决编译器支持中文路径运行。
- 严格要求项目的路径为全英文(为文件夹设置一个别名)。
解决编译器支持中文路径运行
网上有一大堆的文章。基本最终的解决方法都是改Launch.json与task.json,把我们的编译的exe程序放到一个全英文路径下面。我觉得这种方法不太妥,对于其他软件来说,又可能会发生不兼容问题,况且个人也不太喜欢再搞出一个路径来放这些调试程序。
对于这种方法感兴趣的话,大家可以参考 解决VS Code中文名及中文路径调试报错_C_内存溢出
为文件夹设置别名或备注
严格要求项目的路径为全英文,我为什么推荐这种方法呢?因为即使我们通过第一种方法在VC上临时解决了我们的问题,但是之后项目如果需要在其他软件里打开呢,可不可能又会发生不兼容问题,那到时候又要如何解决?这我们无法确定。
我们想要降低风险,可以给文件夹设置一个别名或备注,这样既可以保证英文路径的不变,也可以给文件夹加一个"备注",来提高我们的可阅读性,方便日后查看与管理。
参考笔者文章——设置文件夹别名与备注-解决中文路径导致软件报错问题(nuoyo.cn)