gpt4 book ai didi

package - 如何在不共享源代码的情况下分发 ROS 包

转载 作者:行者123 更新时间:2023-12-04 22:43:04 24 4
gpt4 key购买 nike

有没有办法在不共享源代码的情况下分发 ROS 包?

我只希望用户能够运行 ROS 节点而不会出现依赖问题。

我知道 ROS 是一个开源项目,但我不允许共享代码。

最佳答案

解决方案 1:

在您的包 CMakelists.txt 中,添加安装指令。它是这样的:

install( TARGETS
#list of nodes
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

install(TARGETS
#list of shared libraries
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
)

install(FILES
#list of necessary files (xml...)
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)

install(DIRECTORY
include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
PATTERN ".svn" EXCLUDE
PATTERN ".git" EXCLUDE
)

使用
 $ catkin_make 
$ catkin_make install

您可以在不共享代码的情况下创建执行所需的二进制文件。除了 catkin 工作区中通常的 /install/devel 之外,这将创建另一个文件夹 /build

注意:您可以使用以下命令指定安装文件夹:
 $ catkin_make -DCMAKE_INSTALL_PREFIX=path/to/folder install

只需确保 the binaries need to be compiled for the correct architecture that the other computer has 和您在调用 catkin_make 时工作区中没有的任何依赖项在使用之前也需要由其他部分安装。

现在您有了 /install 文件夹,只需压缩并发送它。

现在,重要的部分是将 install/setup.bash 添加到您的另一台机器 .bashrc ,否则 ROS 将找不到分布式包。
$ echo "source ~/catkin_ws/install/setup.bash" >> ~/.bashrc

有关更多信息,请参阅 here

解决方案 2:

你可以让bloom生成一个deb-src,然后你可以编译它并分发.deb文件, ionic 另一台机器,你可以用 dpkg -i安装它。这可以通过遵循 the pre-release tutorial 的这一部分来完成。

关于package - 如何在不共享源代码的情况下分发 ROS 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40041341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com