【问题标题】:VSCode: Code Runner extension is unable to execute the code on git bash terminal?VSCode:Code Runner 扩展无法在 git bash 终端上执行代码?
【发布时间】:2020-07-03 18:38:42
【问题描述】:

我正在尝试使用可用于 VSCode 的 Code Runner 扩展来运行一个简单的程序“primeRange.cpp”。

我在 VSCode 中选择了我的默认终端为 git bash,但是当我点击右上角的 Run 时,它会发送命令bash 使用 g++ 编译器运行程序,但是当存在具有给定名称的目录时,我收到错误,因为 没有这样的文件或目录

我该如何解决这个问题?

当我在代码运行器上按运行时,如何自定义要在 bash 上执行的命令?

我想将命令设置为:

cd "c:\\Users\\Tushar\\Desktop\\contests\\Practice" && g++ primeRange.cpp -o primeRange && "c:\\Users\\Tushar\\Desktop\\contests\\Practice\\primeRange"

cd "c:\Users\Tushar\Desktop\contests\Practice" && g++ primeRange.cpp -o primeRange && "c:\Users\Tushar\Desktop\contests\Practice\primeRange"

如果我在 bash 上手动执行上述任何一个命令,那么它就可以工作了。

所以我基本上想知道如何包含可执行文件 路径内的文件名为

"c:\Users\Tushar\Desktop\contests\Practice\primeRange"

而不是在引号之后:

"c:\Users\Tushar\Desktop\contests\Practice\"primeRange

这是我的 settings.json

我已将 settings.json 中的路径更新为:

"code-runner.executorMap": {
        "cpp": "cd $dir && g++ -std=c++11 $fileName -o $fileNameWithoutExt && \"./$fileNameWithoutExt.exe\""
    },

但是现在我得到提示而不是要求标准输入,如下所示:

已解决

修复 1:

settings.json 中的 code-runner.executorMap 属性更新为

"code-runner.executorMap": {
            "cpp": "cd $dirWithoutTrailingSlash && g++ -std=c++11 $fileName -o $fileNameWithoutExt && ./$fileNameWithoutExt"
        }

修复 2:

code-runner.terminalRoot 中添加另一个属性 settings.json 为:

"code-runner.terminalRoot": "/"

【问题讨论】:

    标签: bash visual-studio-code vscode-tasks vscode-code-runner


    【解决方案1】:

    我在很长一段时间内遇到同样的问题,经过数小时的在线闲逛,我想我找到了解决方案。

    Windows 和 Unix/Linux 有不同的地址命名方式。要寻址 d 驱动器内名为 my_codes 的文件夹,Windows 将具有以下内容:-“D:\my_codes”,而 Unix / Linux 将具有类似的内容-“/D/my_codes/”。值得注意的区别是使用了不同的斜杠('/' & \)。 Unix 将 \ 视为分隔符。因此,输入 bash 的地址实际上并不是 bash 的正确地址。这就是为什么它会抛出错误“没有这样的文件或目录”。

    您是否注意到,就在 bash 向您抛出错误“没有这样的文件或目录”之前,它删除了地址中的所有反斜杠并显示了“c:UsersTusharDesktopcontestPractice”?

    幸运的是,“Code Runner”开发人员已经解决了这个问题。

    您所要做的就是在 setting.json 文件中包含以下内容:

    "code-runner.terminalRoot":"/",
    

    我希望我能有所帮助。 快乐编码。

    【讨论】:

    • 感谢@ABHIJEET KUMAR,“code-runner.terminalRoot”:“/”成功了。
    猜你喜欢
    • 2014-04-19
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    相关资源
    最近更新 更多