【问题标题】:Sublime Text 3: how to create a build system?Sublime Text 3:如何创建构建系统?
【发布时间】:2015-05-31 21:59:14
【问题描述】:

我是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 编译一切正常。

【问题讨论】:

    标签: build sublimetext3 ros catkin


    【解决方案1】:

    我不确定这是否是实现它的最佳方式,但这就是我所做的。请记住,我是为 winros 项目执行此操作的,因此对于常规 ROS 项目,您只需稍作调整即可。

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

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

    然后,我在项目的根目录(在您的情况下为 ~/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 来运行节点。

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

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      我意识到这是一个老问题,但它仍然是谷歌在 Sublime 中使用 catkin 的首选,所以这是我无耻的自我插件。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-21
        • 2015-03-01
        • 2013-10-14
        • 1970-01-01
        • 1970-01-01
        • 2018-04-27
        • 2015-02-04
        相关资源
        最近更新 更多