導航:首頁 > 源碼編譯 > ros編譯cpp無效

ros編譯cpp無效

發布時間:2023-10-28 11:08:45

1. GDB ROS調試

ROS中用到第三方庫,在編譯第三方庫的時候,加上 -g 選項,以供調用該庫時調試。

在編譯ROS包的時候,使用如下命令編譯:

catkin_make -DCMAKE_BUILD_TYPE=Debug  

GDB啟動應用

rosrun --prefix 'gdb -ex run --args'  package   node  

之後就可以正常使用GDB命令來調試了,因為第三方庫編譯加了 -g 選項,所以可以進入調用庫中的函數進行調試。

2. c++的程序在ros下怎麼運行

1 先建立工作空間~/catkin_ws
2 在工作空間~/catkin_ws下創建包pkg目錄second
好處是通過創建包自動生成package.xml和CMakeLists.txt
3 在second目錄下創建hello.cpp源代碼文件
~~~~~~~~~~~~~~~~~~~~~~~~~~~
eagle:~/catkin_ws$ cd src
eagle:~/catkin_ws/src$ tree second/
second/
├── CMakeLists.txt
├── package.xml
└── src
└── hello.cpp
1 directory, 3 files

4 編寫hello.cpp文件
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include <ros/ros.h>
int main(int argc, char **argv) {
ros::init(argc, argv, "helloros1234444");
ros::NodeHandle n;
ROS_INFO("Hello, ROS!");
ros::spinOnce();
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5 修改編譯makefile文件 CMakeLists.txt
~~~~~~~~~~~~~~~~~~
cmake_minimum_required(VERSION 2.8.3)
project(simple_examples)
find_package(catkin REQUIRED COMPONENTS roscpp)
catkin_package()
include_directories(include $catkin_INCLUDE_DIRS)
add_executable(hello hello.cpp)
target_link_libraries(hello ${catkin_LIBRARIES})
~~~~~~~~~~~~~~~~~~

6 回到~/catkin_ws編譯程序
liao@liao-eagle:~/catkin_ws$ catkin_make
Base path: /home/liao/catkin_ws
Source space: /home/liao/catkin_ws/src
Build space: /home/liao/catkin_ws/build
Devel space: /home/liao/catkin_ws/devel
Install space: /home/liao/catkin_ws/install
####
#### Running command: "make cmake_check_build_system" in "/home/liao/catkin_ws/build"
####
####
#### Running command: "make -j2 -l2" in "/home/liao/catkin_ws/build"
####
Scanning dependencies of target hello
[100%] Building CXX object second/CMakeFiles/hello.dir/src/hello.cpp.o
Linking CXX executable /home/liao/catkin_ws/devel/lib/second/hello
[100%] Built target hello
liao@liao-eagle:~/catkin_ws$

7 測試c++程序
7.1一個終端里運行roscore
7.2 另外一個終端里運行 rosrun second hello
liao@liao-eagle:~/catkin_ws$ rosrun second hello
[ INFO] [1442208641.400826666]: Hello, ROS!
liao@liao-eagle:~/catkin_ws$ rospack find second
/home/liao/catkin_ws/src/second
liao@liao-eagle:~/catkin_ws$

3. 在Ubuntu中用rosmake編譯沒有可執行文件生成是怎麼回事

提示:make:沒有什麼可以做的為`first'。這個是Makefile的一個提示,出現這個提示是因為你編譯出來的可執行文件的時間戳比你的源代碼文件的時間戳「遲」,所以make認為你這種情況下沒必要編譯,因為即使編譯了,編出來的東西和現有的可執行文件一樣,就是浪費時間了,所以提示沒有什麼可以做的為`first'。如果你還要編,隨便打開源代碼的一個文件,保存下,就可以編譯了

4. 如何使用 sdk交叉編譯ros

使用ros_qtc_plugin插件新建項目

使用插件新建項目Import ROS
Workspace選項僅新建工作空間導入現工作空間新建文件ROS面Package、Basic
Node等選項創建package節點、launch文件、urdf文件等
現我創建新catkin工作空間,並且面創建package

1、新建項目

文件——新建文件或項目選擇Import ROS Workspace——choose圖

填寫catkin工作空間名字位置圖

我Namecatkin工作空間文件夾名字相同(同)名catkin_new選擇瀏覽——創建文件夾創建名catkin_new文件夾圖按車再選擇打

現框詢問新建工作空間未初始化否執行初始化我選擇yes
相於執行catkin_init_workspace命令使工作空間初始化

點擊Generate Project File再點擊步
項目管理步驟配置版本控制系統我選擇完圖

建工作空間catkin_new空圖

2、創建package

接我工作空間創建新package
catkin_new面src右鍵單擊選擇添加新文件圖

選擇ROS——package——choose

填寫package名字test1
填寫作者(Authors)維護者(Maintainers)Qt環境部沒配置文支持請要用文否則新建package或者新建package面package.xml空文件
DependenciesCatkin欄填寫依賴通用C++寫節點需要添加roscpp依賴


點擊完

3、添加新節點

目前package空沒任何節點
我test1src文件夾右鍵單擊選擇添加新文件

選擇ROS——Basic Node——choose創建節點新建.cpp文件

節點名稱寫node1則名node1.cpp源文件

用ROS模板新建node1.cpp源文件圖自Hello World程序

4、編譯節點

讓編譯執行文件我需要編輯test1makefile圖
test1CMakeLists.txt加面幾行意思node1.cpp編譯名node1節點
add_executable(node1 src/node1.cpp)
target_link_libraries(node1
${catkin_LIBRARIES}
)

閱讀全文

與ros編譯cpp無效相關的資料

熱點內容
如何為雲終端伺服器安裝軟體6 瀏覽:88
如何查找加密的應用 瀏覽:160
谷歌伺服器無法直接打開怎麼辦 瀏覽:430
電腦如何用安卓導航 瀏覽:354
十年以上程序員買什麼車 瀏覽:5
怎麼讓任務欄中文件夾合並 瀏覽:947
阿里雲伺服器後台開放8888埠 瀏覽:840
湖南電信iptv升級伺服器地址 瀏覽:1002
27乘36簡便演算法 瀏覽:338
柱加密區在哪裡 瀏覽:862
庫卡機器人編程視頻 瀏覽:834
程序員初級證 瀏覽:39
聚類演算法的偽代碼 瀏覽:1002
生物信息文件夾 瀏覽:860
如何設置電腦上的伺服器 瀏覽:1001
25乘105用簡便演算法 瀏覽:928
浪潮伺服器怎麼修復系統 瀏覽:341
泰拉瑞亞全物品國外伺服器地址 瀏覽:448
qq加密傳輸密碼 瀏覽:102
程序員騙房產 瀏覽:464