Передавать флаги CMake в VS Codes «задачи»?

#c #visual-studio-code #cmake #build #devops

#c #visual-studio-code #cmake #сборка #devops

Вопрос:

Итак, у меня есть CMakeLists.txt , который работает хорошо, и решение выполняется в режиме отладки.

Задачи, связанные с VS Code (создание активного файла и т. Д.), Вызывают GCC, игнорируя CMakeLists.txt . Это нежелательно, поскольку CMake устанавливает требуемые флаги, подобные стандартной версии C .

Кто-нибудь знает, как передать CMake в tasks.json ?

Для задач по умолчанию они выглядят так:

 {
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C  : g  -9 build active file",
            "command": "/usr/bin/g  -9",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Generated task by Debugger"
        },
        {
            "type": "cppbuild",
            "label": "C/C  : cpp build active file",
            "command": "/usr/bin/cpp",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "compiler: /usr/bin/cpp"
        }
    ],
    "version": "2.0.0"
}
  

Комментарии:

1. Что вы имеете в виду call a version of GCC that ignores CMakeLists.txt ? gcc не заботится о вашем CMakeList.txt ever. Для этого вам нужно запустить cmake.

2. другой случай "type": "cppbuild" , cppbuild не является допустимым значением для type , где cppbuild пример

3.если вы используете CMake, вызовите make для сборки вашей программы НЕТ g . Не вызывайте cmake для каждой сборки