Мой текущий рабочий процесс для проекта выглядит следующим образом:
- сборка проекта (через catkin)
- исходный сценарий setup.sh (сгенерированный catkin, что я бы не стал)не хотелось бы изменять) установку переменных среды и имен, необходимых для моего исполняемого файла.
- Запустите «MyProgram», которая доступна только после получения сценария «setup.sh».
Я хотел бы иметь возможность отладить мой проект в коде Visual Studio. Для этого я определил задачу создания исполняемого файла с помощью catkin, названную «catkin build all», и определил вторую задачу как:
{
"type": "shell",
"label": "load programs",
"command": "source /some_folder/setup.sh",
"group": "build",
"dependsOn": ["catkin build all"]
}
, которая является «preLaunchTask» моего lanuch. Конфигурация запуска json.
Запуск отладки корректно скомпилирует проект, но выполнение завершится неудачно с ошибкой «запуск: программа myProgram не существует». Действительно, программа MyProgram не может быть найдена, если файл setup.sh не получен, но должен быть получен с помощью "preLaunchTask".
В моем файле launch.json я также могу установить для "program" значение "/ full / path"/ to / myProgram "вместо" myProgram ", но в этом случае разделяемые библиотеки не найдены, так как setup.sh позаботится об этом.
Я также попытался получить файл setup.sh для оболочки изатем запустите код Visual Studio из той же оболочки, но это не решило проблему «запуск: программа myProgram не существует».
Работают ли задачи на разных оболочках? Как я могу запустить preLaunchTask в той же оболочке, что и последующий программный код? Или какой-нибудь другой совет, как заставить мой рабочий процесс работать?