Код Visual Studio: настройка preLaunchTask для OpenCV - PullRequest
0 голосов
/ 04 октября 2019

Я делаю простой C ++ тест OpenCV, используя VS Code на Ubuntu 18.04. Код содержится в одном файле и прекрасно собирается из командной строки:

g++ -ggdb `pkg-config --cflags opencv` -o `basename OpenCVtest.cpp .cpp` OpenCVtest.cpp `pkg-config --libs opencv`

Можно изменить исходный код в коде Visual Studio, повторно скомпилировать из командной строки, а затем отладить в коде,Сейчас я пытаюсь настроить preLaunchTasklaunch.json) для автоматической сборки приложения (без необходимости создания командной строки).

В launch.json эта строка установлена:

"preLaunchTask": "g++ build active file"

Попытка 1

В tasks.json задание настроено следующим образом:

"type": "shell",
"label": "g++ build active file",
"command": "/usr/bin/g++",
"args": [
    "-ggdb",
    "pkg-config --cflags opencv",
    "-o",
    "basename ${fileBasename} .cpp",
    "${fileBasename}",
    "pkg-config --libs opencv"
],
"options": {
    "cwd": "/usr/bin"
},
"problemMatcher": [
    "$gcc"
],
"group": "build"

При запуске конфигурации сборки, следующеезадание выполнено:

/usr/bin/g++ -ggdb 'pkg-config --cflags opencv' -o 'basename OpenCVtest.cpp .cpp' OpenCVtest.cpp 'pkg-config --libs opencv'

с двумя ошибками:

g++: error: unrecognized debug output level
g++: fatal error: no input files

Я заметил, что задание оказалось не совсем тем, что я ожидал (при компиляции из командной строки), поэтому я попытался снова.

Попытка 2

В tasks.json задача настраивается следующим образом:

"args": [
            "-ggdb `pkg-config --cflags opencv` -o `basename ${fileBasename} .cpp` ${fileBasename} `pkg-config --libs opencv`"
        ],

При запуске этой конфигурации сборкиВыполненная задача:

/usr/bin/g++ '-ggdb `pkg-config --cflags opencv` -o `basename OpenCVtest.cpp .cpp` OpenCVtest.cpp `pkg-config --libs opencv`'

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

Как настроить preLaunchTask?

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