Я делаю простой 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, повторно скомпилировать из командной строки, а затем отладить в коде,Сейчас я пытаюсь настроить preLaunchTask
(в launch.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
?