有关VScode安装流程请参考ubuntu小工具大全
接下来是关于如何创建ROS空间并在vscode中编译ros.
mkdir -p demo02_ws/src # demo02_ws是你自己的工作空间名字
cd demo02_ws/
catkin_make
code . # 在当前工作空间demo02_ws进入VScode 注意code后面有个空格
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就会自动编译。
右键左侧栏目的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
成功编译后如下:
不需要另外开终端,点击"+"号就可以新开终端,在终端中输入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