VScode 使用教程——ros下编译C/C++代码

文章详细介绍了如何在Ubuntu环境下安装VScode,并创建ROS工作空间进行编译。通过VScode快捷键Ctrl+Shift+B调用catkin_make进行编译,同时解决了VScode的代码提示和C++标准问题。在CMakeLists.txt中修改对应节点名以避免编译错误,最后展示了启动roscore和运行ROS节点的步骤。
摘要由CSDN通过智能技术生成

有关VScode安装流程请参考ubuntu小工具大全

接下来是关于如何创建ROS空间并在vscode中编译ros.

1. 创建ros空间

mkdir -p demo02_ws/src  # demo02_ws是你自己的工作空间名字
cd demo02_ws/
catkin_make
code .      # 在当前工作空间demo02_ws进入VScode 注意code后面有个空格

2. vscode 中编译 ros

Ctrl+Shift+B,在出来的的弹窗中,点击catkin_make:build一栏后面的小齿轮

出现以下界面:

用下面代码全部替换上面的代码并保存:

{
	// 有关 tasks.json 格式的文档,请参见
		// https://go.microsoft.com/fwlink/?LinkId=733558
		"version": "2.0.0",
		"tasks": [
			{
				"label": "catkin_make:debug", //代表提示的描述性信息
				"type": "shell",  //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
				"command": "catkin_make",//这个是我们需要运行的命令
				"args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
				"group": {"kind":"build","isDefault":true},
				"presentation": {
					"reveal": "always"//可选always或者silence,代表是否输出信息
				},
				"problemMatcher": "$msCompile"
			}
		]
	}
	

这样配置好之后,以后只要按快捷键 Ctrl+Shift+B就会自动编译。

3. 编写ros功能包

右键左侧栏目的src,选择create catkin package,在出现的弹窗里输入功能包的名字(我写的是hello_vscode)回车,之后输入依赖roscpp rospy std_msgs,回车。

可以看到左侧栏目里有我们创建的功能包。右键第二个src——>新建文件——>输入文件名“hello_vscode_c.cpp”,这样就创建好文件可以开始写了。(!!!!注意这里有两个src文件,选择第二个src)

 在编写程序的时候发现vscode不会代码提示,解决方法为:

进入c_cpp_properties.json文件,把第16行的"cppStandard": "c++14"这样一行命令改称成"cppStandard": "c++17",保存之后就有提示了。

修改CMakekLists.txt文件(!!!!注意这里有两个src和两个CMakeList文件,不要搞错了,选择内层的CMakeList文件)

 如果发现显示出来的代码没有高亮,点击最右下角的Text位置,在弹窗中输入makefile,就可以高亮代码。

找到136行的add_executable(${PROJECT_NAME}_node src/hello_vscode_node.cpp)语句

和149-151行target_link_libraries(${PROJECT_NAME}_node,Ctrl+/取消注释。 我们要对这两行进行修改。

 把${PROJECT_NAME}_node替换成你要映射的节点名字,一般都是源文件名。然后把src/hello_vscode_node.cpp改成你自己的源文件名。

 改完之后Ctrl+Shift+B进行编译

如果出现报错,注意检查136行的语句是否改对,src/后面的是你的源文件名字,记得加cpp,src前面的那个不加cpp

成功编译后如下:

 4. 启动roscore运行

不需要另外开终端,点击"+"号就可以新开终端,在终端中输入roscore 

新开一个终端,输入

source ./devel/setup.bash
rosrun hello_vscode hello_vscode_c  # rosrun 功能包名 映射的节点名称

运行成功界面:

这里rosrun后面的功能包名是我们在第3步最开始的弹窗里命名的,映射的节点名称是在修改CMakeList文件时136行add_executable里面的修改的映射节点名字。

注意,当你修改了代码之后,需要重新Ctrl+Shift+B编译一下,然后source ./devel/setup.bash,然后rosrun hello_vscode hello_vscode_c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值