2016-10-14 65 views

回答

6

解決方案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 

您可以創建需要執行的二進制文件而不共享代碼。除了柔kin花工作區中通常的/devel/build之外,這將創建另一個文件夾/install

注意:您可以使用指定的安裝文件夾:

$ 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將無法找到分佈的pacakges。

$ echo "source ~/catkin_ws/install/setup.bash" >> ~/.bashrc 

查看here瞭解更多信息。

解決方案2:

你可以綻放你生成一個deb-src和那麼你就可以編譯和distrbute的.deb文件,離子的其他機器,你可以用dpkg -i安裝。這可以通過跟隨the pre-release tutorial的這部分來完成。

+0

這會進入與另一臺機器上已設置的環境衝突嗎? – Bernardo

+0

那麼,只有當另一臺機器中已經存在相同的包時,我認爲... – Vtik

+1

我到底該如何在另一臺機器上運行節點?沒有包含節點的軟件包,所以我不能使用rosrun。他們都在安裝文件夾(對於遲到的答覆抱歉,現在只能回到這個) – Bernardo

0

我無法通過catkin_make install或bloom來解決此問題。幸運的是,我被允許共享工作區所在的硬盤,所以我只需從我的.py腳本創建.pyc文件並使其可執行。

相關問題