Я использую проект CMake (папка) на Windows, для разработки на Linux.
После ввода всей необходимой информации в окне конфигурации CMake, я могу собрать, установить и отладка (на удаленной Linux цели, с моего Windows компьютера / из Visual Studio).
Теперь каждый раз, когда я выбираю проект из выпадающего списка отладки и нажимаю Отладка:
VS повторяется:
- Сборка CMake ..
- Установка ..
- Отладка / Присоединение
Даже когда в коде ничего не изменилось! (Просто перезапустите сеанс отладки, остановив отладку, затем снова щелкнув по отладке.)
Я попытался создать свою собственную запись в файле launch.vs. json, следуя инструкциям из документации ( в сочетании с this ), но VS жалуется, что "project" и "projectTarget" отсутствуют, и не отображает запись отладки. При их добавлении VS сначала сделает CMake и сделает шаги, соберет и установит, а затем отладит (это не то, что мне нужно / нужно).
Файл, который я сделал, выглядел так:
{
"version": "0.2.1",
"configurations": [
{
"type": "cppdbg",
"name": "DBG vpt24",
""
"project": "CMakeLists.txt",
"projectTarget": "vpt24",
"cwd": "/opt/project/bin",
"program": "/opt/project/bin/vpt24",
"MIMode": "gdb",
"externalConsole": true,
"remoteMachineName": "${debugInfo.remoteMachineName}",
"pipeTransport": {
"pipeProgram": "${debugInfo.shellexecPath}",
"pipeArgs": [
"/s",
"${debugInfo.remoteMachineId}",
"/p",
"${debugInfo.parentProcessId}",
"/c",
"${debuggerCommand}",
"--tty=${debugInfo.tty}"
],
"debuggerPath": "/usr/bin/gdb"
},
"setupCommands": [
{
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"visualizerFile": "${debugInfo.linuxNatvisPath}",
"showDisplayString": true
}
]
}
При удалении project
и projectTarget
эта запись не будет отображаться в меню отладки VS.
Я также попытался указать значения "default" и ""
для project
и projectTarget
, но тогда VS также не будет отображать запись в списке отладки.
Как настроить запись отладки (в CMakeSettings. json или, возможно, в launch.vs. json?), Чтобы просто запустить приложение (например, /opt/project/bin/app
) и подключить gdb к , что , без VS, выполняющего «Копирование файлов, генерация CMake, сборка, установка и т. Д. c», а затем ... наконец отладка?