【问题标题】:C++ file name with space causes error in Visual Studio Code带有空格的 C++ 文件名导致 Visual Studio Code 中的错误
【发布时间】:2021-09-03 11:04:18
【问题描述】:

当我在 Visual Studio Code 中编写文件名为 Hello World.cpp 的 C++ 程序时,我遇到了一些错误:

#include<iostream>
using namespace std;
int main()
{
  cout<<"Hello World!!!"<<endl;

return 0;
}

输出:

g++.exe: error: Hello: No such file or directory
g++.exe: error: World.cpp: No such file or directory
g++.exe: error: World: No such file or directory
g++.exe: fatal error: no input files
compilation terminated.

但是当我像HelloWorld.cpp 那样重命名没有空格的文件时,我没有收到任何类型的错误。我使用最新更新的 Visual Studio Code 和 MingW 编译器。

但我想使用带空格的文件名。我该如何解决这个问题?

【问题讨论】:

  • 用引号将文件名括起来
  • 如您在屏幕截图中所见,编译器命令类似于g++ Hello World.cpp,因此它将搜索名为HelloWorld.cpp两个 文件。正如您所说,最简单的解决方案是使用不带空格的文件名。 “正确”的解决方案需要编辑编译器命令
  • 根据经验 - 大多数工具和实用程序都可以处理文件和路径名中的空格。但是,默认情况下,大多数工具和实用程序处理文件和路径名中的空格。因此,除非您喜欢配置构建工具,否则请避免路径和文件名中的空格。
  • 如果您决定在名称中使用空格,并且不想配置构建工具,请将空格 (U+0020) 替换为不间断空格 (U +00A0)。

标签: c++ visual-studio-code


【解决方案1】:

如果您使用的是 Windows,请尝试在 Setting.JSON

中配置类似的设置
"code-runner.executorMap": {
    "cpp": "cd $dir && g++ \"$fileName\" -o \"$fileNameWithoutExt.exe\" && & \"$dir$fileNameWithoutExt.exe\""
}

注意多余的“&”字符。

如果你使用的是基于 Unix 的系统,试试这个(我还没有测试过,但我认为这会起作用):

"code-runner.executorMap": {
    "cpp": "cd $dir && g++ \"$fileName\" -o \"$fileNameWithoutExt\" && \"$dir$fileNameWithoutExt\""
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多