首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码调试:源,然后在同一个shell上启动

问代码调试:源,然后在同一个shell上启动
EN

Stack Overflow用户
提问于 2019-10-08 15:06:00
回答 2查看 2.4K关注 0票数 3

我当前的项目工作流如下:

  • 构建项目(通过catkin)
  • 创建一个setup.sh脚本(由catkin生成,我不想修改),设置环境变量和可执行文件所需的名称。
  • 运行"MyProgram",它只有在找到"setup.sh“脚本后才可用。

我希望能够在Visual代码中调试我的项目。为此,我定义了通过catkin构建可执行文件的任务,名为"catkin build all",并将第二个任务定义为:

代码语言:javascript
复制
{
  "type": "shell",
  "label": "load programs",
  "command": "source /some_folder/setup.sh",
  "group": "build",
  "dependsOn": ["catkin build all"]
}

这是我的lanuch.json启动配置的"preLaunchTask“。

启动调试将正确编译项目,但执行失败时会出现“启动:程序myProgram不存在”的错误。实际上,如果没有MyProgram源,程序setup.sh是找不到的,而是应该由"preLaunchTask“提供的。

在我的launch.json中,我也可以将"program“设置为"/full/path/ to /myProgram”,而不是"myProgram",但是在本例中,没有找到共享库,因为setup.sh会处理这个问题。

我还尝试在shell上源setup.sh,然后从同一个shell启动visual代码,但这并没有解决“启动:程序myProgram不存在”的问题。

任务是否运行在不同的shell上?如何让preLaunchTask在与后续程序代码相同的shell中运行?或者其他关于如何让我的工作流程正常工作的提示?

EN

回答 2

Stack Overflow用户

发布于 2019-10-14 15:09:51

我的解决方案是使用env_file

在一个终端中,源文件(如:source /opt/ros/melodic/setup.bash )

使用:printenv | grep melodic恢复更改

使用环境变量在repo中创建一个.env文件;(PWD除外)

代码语言:javascript
复制
LD_LIBRARY_PATH=/opt/ros/melodic/lib
ROS_ETC_DIR=/opt/ros/melodic/etc/ros
CMAKE_PREFIX_PATH=/opt/ros/melodic
ROS_ROOT=/opt/ros/melodic/share/ros
PYTHONPATH=/opt/ros/melodic/lib/python2.7/dist-packages
ROS_PACKAGE_PATH=/opt/ros/melodic/share
PATH=/opt/ros/melodic/bin:/home/alexis/.nvm/versions/node/v8.16.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
PKG_CONFIG_PATH=/opt/ros/melodic/lib/pkgconfig
ROS_DISTRO=melodic

在launch.json任务中添加以下行:"envFile": "${workspaceFolder}/.env"

注意:这可以在prerunTask中使用以下方法实现自动化:

代码语言:javascript
复制
command: "source /opt/ros/melodic/setup.bash; printenv | grep melodic > ${workspaceFolder}/.env"
票数 8
EN

Stack Overflow用户

发布于 2019-10-12 07:04:21

也许这在放大后会有帮助。

从这里那里得到的信息

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58289147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档