Sublime Text 3:如何创建构建系统?

时间:2015-05-31 21:59:15

标签: build sublimetext3 ros catkin

我是ROS用户。使用该框架,您通常会定义一个工作目录:

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
// Here create your c++ packages

然后让系统通过输入以下内容来编译您的包:

$ cd ~/catkin_ws/
$ catkin_make

但这意味着您应该至少再打开一个控制台,以便调用命令:

$ catkin_make 

立即编译您在该工作目录中编写的所有软件包。

由于我使用Sublime Text 3编写我的软件,我希望能够从Sublime调用该函数 我经历过tutorial这么多次,但我仍然不明白如何创建我的建筑系统。

我已尝试过以下内容:

{
    "path": "~/workspace_ros",
    "cmd": ["catkin_make"]
}

但是我收到以下错误消息:

[Errno 2] No such file or directory: 'catkin_make'
[cmd: ['catkin_make']]
[dir: /home/will/workspace_ros/src/flight_system/src/include]
[path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]
[Finished]

我甚至尝试了以下选项:

path
shell_cmd

但仍然没有将catkin识别为编译命令

出了什么问题?

PS:在工作区中我已经有一个CMakeLists.txt文件。在shell中调用catkin可以很好地编译所有内容。

2 个答案:

答案 0 :(得分:2)

我不确定这是否是实现它的最佳方法,但这就是我所做的。请记住,我为winros项目做了这个,所以对于常规的ROS项目,你只需稍微调整一下。

首先,我按如下方式为项目创建了一个构建系统(因此将其附加到项目文件中):

"build_systems":
[
  {
    "name" : "ROS",
    "cmd" : ["$project_path/build.bat"],
    "working_dir" : "$project_path",

    "variants" : [
      {
        "name" : "Run",
        "cmd" : ["$project_path/run.bat"]
      }
    ]
  }
]

然后我创建了项目根目录(在你的case / / workspace_ros中)中引用的build.bat和run.bat脚本。我创建这些脚本是因为构建/运行节点不仅仅是调用catkin_make。您还需要先调用设置脚本。

这是build.bat

@ECHO OFF

REM Basically, change the cwd to the project's root dir
SET ws_path=%~dp0
cd /D "%ws_path%"
call setup.bat
winros_make -i

您可能希望将其更改为Linux系统的bash脚本,并调整脚本本身。我们的想法是将您的cwd更改为项目的路径并调用安装文件并在之后构建。

这里是run.bat

@ECHO OFF

REM Call the setup script and launch the node
call "C:\opt\ros\hydro\x86\setup.bat"
roslaunch eyetracker_talker talker.launch

同样,您可能需要将其更改为bash脚本。就我而言,我使用roslaunch来运行节点。

最后,这为您提供了两个构建选项(构建和构建:运行)。两者的输出应显示在构建输出窗口中。

希望这有帮助。

答案 1 :(得分:0)

我意识到这是一个古老的问题,但它仍然是谷歌在Sublime上使用catkin的最佳选择,所以继承我无耻的自我插件。

我最近写了一篇Sublime 3软件包Catkin Builder,它在Sublime中体现了ROS软件包。它使用catkin构建而不是catkin_make,但它可能会帮助你。