Код VS не может скомпилировать несколько файлов C ++ (WSL) - PullRequest
0 голосов
/ 12 апреля 2020

Я только начал настраивать код VS в WSL. Я последовал инструкции от G CC на Windows подсистему для Linux. Большая часть работы выполнена, есть только одна проблема. Для этой части:

Изменение задач. json

Вы можете изменять свои задачи. json для создания нескольких файлов C ++, используя аргумент, такой как ${workspaceFolder}/*.cpp вместо ${file}. Вы также можете изменить имя выходного файла, заменив ${fileDirname}/${fileBasenameNoExtension} жестко закодированным именем файла (например, 'helloworld.out').

Я хочу скомпилировать несколько файлов cpp, но метод обеспечивает сверху ${workspaceFolder}/*.cpp вместо ${file} у меня не работает. После того, как я заменил его, g ++ похоже распознает *. cpp как файл, поэтому не может его найти.

Это то, что показывает терминал.

g++: error: /.../.../*.cpp: No such file or directory
g++: fatal error: no input files
compilation terminated.
The terminal process terminated with exit code: 1

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Я обнаружил, что проблема в названии моей папки. В имени моей папки есть пробел, поэтому смена имени папки решила эту проблему. Это действительно не очень хорошая привычка использовать пространство. Но если вы по-прежнему хотите использовать имя, которое содержит пробел, выполните "\" $ {workspaceFolder} \ "/ . cpp" вместо "$ {workspaceFolder} / . cpp ".

0 голосов
/ 13 апреля 2020

Попробуйте вместо этого: "${workspaceFolder}/**.cpp"

На веб-сайте, где вы разместили пример, tasks.json будет таким

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "g++ build active file",
      "command": "/usr/bin/g++",
      "args": ["-g", "${workspaceFolder}/**.cpp", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
      "options": {
        "cwd": "/usr/bin"
      },
      "problemMatcher": ["$gcc"],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

Я не могу сказать вам причину двойной звездочки *, но он принимает все файлы с. cpp, заканчивающимся в текущей папке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...