在Ubuntu上使用Visual Studio Code编译C++

4

我正在尝试编译非常简单的代码。我使用从这里复制的tasks.json配置。

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build & debug file",
      "type": "shell",
      "command": "g++",
      "args": [
        "-g",
        "-o",
        "${fileBasenameNoExtension}",
        "${file}"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    },
    {
      "label": "build & run file",
      "type": "shell",
      "command": "g++",
      "args": [
        "-o",
        "${fileBasenameNoExtension}",
        "${file}"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

但是当我构建(ctrl+shift+b)时出现错误:

/usr/bin/ld:/home/username/LinuxProjects/FirstCppProject/.vscode/tasks.json: 文件格式无法识别;被视为连接器脚本 /usr/bin/ld:/home/username/LinuxProjects/FirstCppProject/.vscode/tasks.json:1: 语法错误 collect2: error: ld 返回了 1 个退出状态

终端进程以退出码 1 终止。

我不明白json有什么问题。


1
你检查了这个文件的行尾吗? - Matthieu Brucher
我应该检查什么? - amplifier
尝试在文件上运行dos2linux(将行尾从Windows转换为Linux)。 - Matthieu Brucher
不好意思,我想说的是它之前没有'0d'。 我有'7D 0A','7D'是'}'。 - amplifier
我发现我需要将行尾从LF改为CRLF。我在屏幕右下角进行了更改,那里列出了光标位置、制表符大小、编码类型、行尾、代码类型和环境类型。 - Sean Munson
显示剩余4条评论
1个回答

10

这将编译当前活动的文件,所以您必须确保所需的源文件处于活动状态(也就是打开并在视图中)。如果您在task.json文件处于活动状态时运行此命令,它将尝试编译task.json文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接