解决 VS Code 无法编译 C++ 文件名带括号的问题--无法将“XXX“项识别为cmdlet、函数、脚本文件或可运行程序的名称

问题描述

    最近在使用 VS Code 刷算法题时,遇到了一个令人头疼的问题。由于题目文件命名中包含括号,导致 Run Code 时无法正确编译 C++ 代码。具体表现为,插件自动生成的编译命令无法正确解析文件名,导致编译失败。
报错图片
    同时发现只要没有括号正常命名的文件都可以正常编译,于是打算去Run Code的编译设置项里探索一番

问题分析

    询问AI得知,Run Code 插件通过 code-runner.executorMap 中的设置来确定如何运行不同类型的文件。当文件名包含括号等特殊字符时,插件可能无法正确解析,导致编译命令出错。所以思路是用转义字符使文件名不被命令行当做可执行文件名读取即可

解决方案

  1. 寻找code-runner.executorMap
    我尝试在vscode的运行命令里寻找该项,但是无结果
    寻找

    直到我去到runcode插件的设置项里才发现
    在这里插入图片描述

  2. 开始修改代码
    根据1的指引进入settings.json之后我们找到 C++ (cpp) 的配置。它看起来应该像这样:

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

    整个文件可能是这样:
    Cpp

    修改该行中$fileName属性,变为\"$fileName\"或者'$fileName'都可以使整个文件名不被命令行理解为可执行程序名而报错,类似这样:

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

     "cpp": "cd $dir && g++ `$fileName`-o $fileNameWithoutExt && $dir$fileNameWithoutExt",
    
  3. 成功检查 运行试试
    成功
    成功!我的路径显示有a.exe使因为我除了修改了$fileName属性,还将-o后面的两个地址都固定了,实现任意的cpp编译后只会生成在固定路径下的a.exe,不过这种固定写法一般不适用于构建cpp项目,写题正好。限于篇幅和预防标题诈骗就不在本文赘述,可以跳转至xxx查看

总结

根据编译路径可以倒推出问题所在,借助ai快速找到可能问题

希望这篇博客能帮助到遇到类似问题的开发者!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值