国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - C/C++ - ros項(xiàng)目調(diào)試:vscode下配置開(kāi)發(fā)ROS項(xiàng)目的詳細(xì)教程

ros項(xiàng)目調(diào)試:vscode下配置開(kāi)發(fā)ROS項(xiàng)目的詳細(xì)教程

2021-09-22 14:41Coulson的博客 C/C++

這篇文章主要介紹了ros項(xiàng)目調(diào)試:vscode下配置開(kāi)發(fā)ROS項(xiàng)目,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

引言

在vscode下面配置用于ROS項(xiàng)目開(kāi)發(fā)的環(huán)境

包括頭文件目錄的配置,catkin_make命令的配置,GDB debug的配置,以及ROS插件。

vscode頭文件目錄配置安裝“c/c++”插件

到vscode左邊欄的EXTENSIONS中,搜索“C/C++”并安裝

生成c_cpp_properties.json

vscode自身配置文件全部在./.vscode/目錄下

但是,在最開(kāi)始對(duì)自己新建的目錄和文件進(jìn)行編輯后,文件夾里面是沒(méi)有.vscode目錄的

同時(shí),我們的cpp文件代碼中的 #include <> 這句話是有下劃線警示的,提示找不到文件

這時(shí)使用鼠標(biāo)懸浮功能,點(diǎn)擊“紅色燈泡”,點(diǎn)擊edit c_cpp_properties.json選項(xiàng),vscode會(huì)自動(dòng)在配置文件夾中新建.vscode/文件夾,同時(shí)在里面初始化了c_cpp_properties.json文件

輸出編譯命令文件

這時(shí),可能還有一些頭文件找不到,比如ros/ros.h,我們還需要配置一些東西。

用命令行編譯我們寫(xiě)的c++代碼,同時(shí)輸出編譯信息文件,這里以ROS為例

?
1
catkin_make -DCMAKE_EXPORT_COMPILE_COMMANDS=Yes

這個(gè)命令會(huì)輸出一個(gè)compile_commands.json文件在ROS工作空間的build文件夾下面

然后在c_cpp_properties.json文件添加下面一段話

?
1
"compileCommands": "${workspaceFolder}/build/compile_commands.json"

修改后的c_cpp_properties.json文件如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
 "configurations": [
 {
 "name": "Linux",
 "includePath": [
 "${workspaceFolder}/**"
 ],
 "defines": [],
 "compilerPath": "/usr/bin/gcc",
 "cStandard": "c11",
 "cppStandard": "c++17",
 "intelliSenseMode": "clang-x64",
 "compileCommands": "${workspaceFolder}/build/compile_commands.json"
 }
 ],
 
 "version": 4
}

這樣,就基本可以找到全部頭文件了,然后就可以使用代碼提示來(lái)碼代碼了。

catkin_make設(shè)置

vscode沒(méi)有內(nèi)置make功能,需要借助Task功能進(jìn)行配置

Ctrl+shift+P進(jìn)入命令模式,鍵入tasks: Configure Task

此時(shí)會(huì)在.vscode文件夾下面自動(dòng)生成task.json文件,如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
 "version": "2.0.0",
 "tasks": [
 {
 "label": "catkin_make", //代表提示的描述性信息
 "type": "shell", //可以選擇shell或者process,如果是shell代碼是在shell里面運(yùn)行一個(gè)命令,如果是process代表作為一個(gè)進(jìn)程來(lái)運(yùn)行
 "command": "catkin_make",//這個(gè)是我們需要運(yùn)行的命令
 "args": [],//如果需要在命令后面加一些后綴,可以寫(xiě)在這里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
 "group": {"kind":"build","isDefault":true},
 "presentation": {
 "reveal": "always"//可選always或者silence,代表是否輸出信息
 },
 "problemMatcher": "$msCompile"
 },
 ]
}

其中,這行設(shè)置

?
1
"group": {"kind":"build","isDefault":true},

代表將我們定義的這個(gè)task添加到build組里面,這樣就可以中Ctrl+Shift+B快捷鍵來(lái)找到編譯命令,命令名稱就是在label里面定義的,如果"isDefault":true那么就代表直接執(zhí)行command,如果為false還需要在build下拉里面選一下,我們這里就是label名字:catkin_make

還需要提一下,我們打開(kāi)vscode一定要在我們的ROS工作空間目錄打開(kāi):

code .

因?yàn)檫@樣你的vscode的Base path就是你打開(kāi)vscode的位置,在我們執(zhí)行catkin_make的時(shí)候,需要用的這個(gè)Base path,必須是我們的ROS工作空間來(lái)可以正常catkin_make

這樣配置好了之后,我們之后再進(jìn)行編譯ROS工作空間的時(shí)候,就可以方便的使用快捷方式

Ctrl+Shift+B

GDB debug的配置

GDB調(diào)試器是調(diào)試C++代碼的神器,ROS項(xiàng)目本質(zhì)上也是一個(gè)ROS項(xiàng)目,因此也可以用GDB進(jìn)行調(diào)試

在vscode里面已經(jīng)繼承了GDB調(diào)試器,我們需要做的就是配置launch.json文件

點(diǎn)擊左側(cè)工具欄”Debug“,點(diǎn)擊”齒輪“按鈕,此時(shí).vscode文件夾下面就會(huì)自動(dòng)生成launch.json文件,如下所示

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
 "version": "0.2.0",
 "configurations": [
 {
 "name": "(gdb) Launch", // 配置名稱,將會(huì)在調(diào)試配置下拉列表中顯示
 "type": "cppdbg", // 調(diào)試器類(lèi)型 該值自動(dòng)生成
 "request": "launch", // 調(diào)試方式,還可以選擇attach
 "program": "${workspaceRoot}/devel/lib/waypoint_follower/pure_persuit", //要調(diào)試的程序(完整路徑,支持相對(duì)路徑)
 "args": [], // 傳遞給上面程序的參數(shù),沒(méi)有參數(shù)留空即可
 "stopAtEntry": false, // 是否停在程序入口點(diǎn)(停在main函數(shù)開(kāi)始)
 "cwd": "${workspaceRoot}", // 調(diào)試程序時(shí)的工作目錄
 "environment": [], //針對(duì)調(diào)試的程序,要添加到環(huán)境中的環(huán)境變量. 例如: [ { "name": "squid", "value": "clam" } ]
 "externalConsole": false, //如果設(shè)置為true,則為應(yīng)用程序啟動(dòng)外部控制臺(tái)。 如果為false,則不會(huì)啟動(dòng)控制臺(tái),并使用VS Code的內(nèi)置調(diào)試控制臺(tái)。
 "MIMode": "gdb", // VSCode要使用的調(diào)試工具
 "setupCommands": [
 {
  "description": "Enable pretty-printing for gdb",
  "text": "-enable-pretty-printing",
  "ignoreFailures": true
 }
 ]
 }
 ]
}

需要注意的是,這里面的“program”參數(shù)是需要自己給定的,比如我要調(diào)試一個(gè)ROS節(jié)點(diǎn),那么就需要找到這個(gè)節(jié)點(diǎn)生成的可執(zhí)行目標(biāo),就是可執(zhí)行的二進(jìn)制文件,然后添加到“program”參數(shù)后面,如果要調(diào)試其他節(jié)點(diǎn),那么還需要手動(dòng)修改這里

除此之外,因?yàn)槲覀儾皇莚oslaunch啟動(dòng)的節(jié)點(diǎn),還需要一個(gè)終端運(yùn)行roscore,否則會(huì)找不到ROS MASTER

"request"參數(shù)里面,gdb在vscode里面提供了launch和attach兩個(gè)配置任務(wù)。兩者的區(qū)別是launch實(shí)際上是啟動(dòng)一個(gè)node執(zhí)行指定代碼,同時(shí)可以在vscode里面打斷點(diǎn)調(diào)試。 attach是執(zhí)行監(jiān)聽(tīng)的任務(wù)。

使用vscode進(jìn)行調(diào)試的手段主要包括單步執(zhí)行,觀察跟蹤變量值等等

更多的GDB調(diào)試命令可以在vscode下方的DEBUG_CONSOLE窗口直接輸入GDB命令 但是要注意需要在原來(lái)的GDB命令前面家加上一個(gè)前綴“-exec”,如下所示:

-exec b main

有關(guān)于常用的GDB命令總結(jié):GDB的使用

還需要注意的是在Watch窗口添加需要Watch的變量時(shí)候,變量名稱要寫(xiě)全局名稱,包括前面的命令空間都要寫(xiě)上

基于上面的描述,我們就可以開(kāi)心的debug了

添加ROS插件安裝

打開(kāi)vscode的快捷輸入窗口(Ctrl+P)

輸入以下命令,即可安裝ROS插件

?
1
ext install ajshort.ros

用法

可以在右鍵點(diǎn)擊一個(gè)文件夾,然后選擇creat catkin package,創(chuàng)建一個(gè)ROS package

還可以按下(Ctrl+Shift+P),輸入

ros::showMasterStatus

這個(gè)命令可以顯示出當(dāng)前ROS通信系統(tǒng)的詳細(xì)信息,包括當(dāng)前的所有話題,已經(jīng)話題的所有發(fā)布者和訂閱者

基本上這個(gè)vscode的ROS插件就這兩個(gè)有用

到此這篇關(guān)于ros項(xiàng)目調(diào)試:vscode下配置開(kāi)發(fā)ROS項(xiàng)目的詳細(xì)教程的文章就介紹到這了,更多相關(guān)vscode配置開(kāi)發(fā)ROS項(xiàng)目?jī)?nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/weixin_35695879/article/details/85254422

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 91久久 | 中文字幕亚洲二区 | 色婷婷综合久久久中文字幕 | 午夜精品视频 | 欧美午夜一区二区 | 久久国产99 | 久久91精品国产 | 狠狠av| 日韩欧美中文字幕在线视频 | 一区免费看| 亚洲一区中文字幕 | 欧美精品一区二区三区四区五区 | 国产精品区一区二区三区 | 久久精品中文 | 国产精品手机在线 | 午夜午夜精品一区二区三区文 | 一级片一级片 | 日韩视频免费 | 性视屏| 国产专区一区二区三区 | 国产乱码精品一区二区三区av | 日韩欧美在线免费观看 | 国产毛片欧美毛片久久久 | 欧美国产一区二区三区 | 99色综合| 欧美日韩一级二级三级 | 亚洲精品久久久久久久久久久 | 久久777| 91社区在线观看 | 99热首页| 欧美日韩精品一区二区三区四区 | 亚洲免费视频观看 | 精品国产青草久久久久福利 | 国产视频亚洲 | 亚洲欧美日韩在线一区二区三区 | 色偷偷噜噜噜亚洲男人 | 欧美激情视频一区二区三区在线播放 | 成人在线看片 | 中文字幕一区二区三区乱码在线 | 日韩三级网 | 国产女精品 |