Настроить файл задач. json в VS Code для компиляции C ++ с указанием c версии C ++ на Mac - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь скомпилировать код C ++, используя VS Code, и у меня возникли проблемы с использованием другой версии C ++. Я хотел бы скомпилировать его с параметром -std=c++17, так как некоторые вещи, которые мне нужны для тестирования работы только в C ++ 17 (по умолчанию Clang использует C ++ 14). Итак, я попытался отредактировать файл tasks. json, чтобы вручную добавить опцию для использования C ++ 17. Тем не менее, даже после этого ничего не работает.

Изначально я редактировал только часть options для g ++ build active file , но, поскольку это не сработало, я добавил эту опцию ко всем задачам. К сожалению, это тоже не помогло. Можете ли вы сказать мне, где именно я ошибся там? Вы можете найти задач часть задач, json файл ниже.

"tasks": [
        {
            "type": "shell",
            "label": "clang build active file",
            "command": "/usr/bin/clang",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "-std=c++17"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "type": "shell",
            "label": "clang build active file",
            "command": "/usr/bin/clang",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "-std=c++17"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build"
        },
        {
            "type": "shell",
            "label": "g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "-std=c++17"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build"
        }
    ]

1 Ответ

0 голосов
/ 30 марта 2020

Хорошо, поэтому ответ был прост, и я действительно делал правильные вещи, но не в том месте.

Прежде всего, можно просто добавить -std=c++17 к любой из ваших задач вручную или просто создайте отдельную задачу с указанным c именем. В качестве примера (взято с веб-сайта VS Code),

        {
            "type": "shell",
            "label": "clang++ build active file",
            "command": "/usr/bin/clang++",
            "args": [
                "-std=c++17",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${workspaceFolder}",
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }

Это задание с именем clang++ build active file и использованием std=c++17 в качестве версии C ++. Тогда вместо нажатия кнопки Run code вам нужно будет использовать опцию Terminal-> Run build * .

Первоначально я думал, что существует способ переопределить поведение кнопки Run code для использования другой версии C ++, но я думаю, что единственный способ сделать это - добавить новую / изменить старое задание.

...