❶ ros編譯提示缺少鏈接庫怎麼辦
一、標准:ROS功能包中調用第三方靜態庫
include_directories(
include
${catkin_INCLUDE_DIRS}
)
add_executable(${PROJECT_NAME}_node src/source.cpp
include/source.h
)
target_link_libraries(${PROJECT_NAME}_node
${catkin_LIBRARIES}
${PROJECT_SOURCE_DIR}/lib/第三方庫名
)
以上一般情況下都沒問題,但是有些靜態庫沒有添加pie系統保護功能,導致程序轉載的地址是無效的,所以我們在鏈接時候也需要關閉pie功能。
註:引入PIE的原因是讓程序能裝載在隨機的地址,通常情況下,內核都在固定的地址運行,如果能改用位置無關,那攻擊者就很難藉助系統中的可執行碼實施攻擊了。類似緩沖區溢出之類的攻擊將無法實施。而且這種安全提升的代價很小
二、解決鏈接未開啟pie功能的靜態庫時,編譯報錯
先作對比:
include_directories(
include
${catkin_INCLUDE_DIRS}
)
add_executable(${PROJECT_NAME}_node src/source.cpp
include/source.h
)
target_link_libraries(${PROJECT_NAME}_node
${catkin_LIBRARIES}
${PROJECT_SOURCE_DIR}/lib/第三方庫名 -no-pie
)
與一般的鏈接形式對比,我們只是在鏈接第三方庫的後面加了-no-pie,之後再到ROS的工作空間中重新編譯就完成了!
❷ 在Ubuntu中用rosmake編譯沒有可執行文件生成是怎麼回事
提示:make:沒有什麼可以做的為`first'。這個是Makefile的一個提示,出現這個提示是因為你編譯出來的可執行文件的時間戳比你的源代碼文件的時間戳「遲」,所以make認為你這種情況下沒必要編譯,因為即使編譯了,編出來的東西和現有的可執行文件一樣,就是浪費時間了,所以提示沒有什麼可以做的為`first'。如果你還要編,隨便打開源代碼的一個文件,保存下,就可以編譯了
❸ 如何安裝ros系統
ROS作為一款開源機器人操作系統,在各種工業機器人、自動駕駛導航中非常流行,是學習自動駕駛、機器人的方向的人必須接觸的系統軟體,這里以目前寫這篇文件時最新(2018年5月)的ROS Melodic Morenia的系統安裝為例,寫一篇經驗。
工具/原料
ROS Melodic Morenia Ubuntu Bionic amd64 版
方法/步驟
1/9 分步閱讀
首先要安裝一個基礎的linux系統,在ROS Melodic Morenia看一下受支持的linux發行版本,主要只有Ubuntu Bionic(18系列),Ubuntu Artful(17系列),和Debian Stretch(9系列),故這里以Ubuntu 18.04 LTS系統為例進行安裝。
2/9
首先要添加網路庫,這里選擇使用國內的鏡像源,中科大的鏡像源安裝速度快一些,如果使用國外的源,電信的寬頻幾乎就安裝不了。
執行sudo sh -c '. /etc/lsb-release && echo "deb <軟體源> $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list',如下圖指令,加入中科大源到sourcelist。
ROS機器人開發入門_免費視頻課程_訊飛AI大學
廣告
3/9
添加認證密鑰,國內從ubuntu的官方keyserver添加密鑰較快。
使用如下圖命令添加認證公鑰到軟體源中。
【全新】「夢幻西遊網頁版」開局滿神裝,人人有神寵
廣告
4/9
更新軟體源緩存數據,sudo apt-get update
合肥 全屋整裝系統_實力品牌集成牆板廠家大保障!
廣告
5/9
新手安裝的直接全環境安裝即可,使用指令
sudo apt-get install ros-melodic-desktop-full
如下圖,國內的源下載速度非常快,大概十幾分鍾就可以安裝完成。
查看剩餘1張圖
6/9
安裝完成後,接下來要做一些初始化設置才能開始使用。依次輸入
sudo rosdep init
rosdep update
如下圖所示。
查看剩餘1張圖
7/9
為了使用方便,你可以將配置好一打開你的bash就自動導入所有Ros環境變數,這樣你可以方便以後的使用。
8/9
最後你需要安裝一些開發使用的編譯工具,最後你就可以愉快使用ROS了。
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
安裝編譯工具如下圖。
9/9
最後使用roscore命令測試一下安裝效果。
編輯