ROS学习笔记14--C++编写源文件,生成node的一些问题解决经验总结

环境 Ubuntu16.04 ros-kinetic vs-code

关于C++编写在vs-code编写时候没有出现语法错误,而在终端编译时通过不了,或者说编译也通过过了,写launch文件确实调用不了源文件定义的node时可能尝试的解决手段:
打开我们创建源文件的那个包里面的两个文件:

(1)cmakelist.txt

1). project(imu) 告诉编译器咱们这个自定义包叫imu

2). cs_add_library(imu src/PROJECTNAME/imu.cpp),imu,使src/{PROJECT_NAME}/imu.cpp ) 告诉编译器,我们创建一个自定义的库imu ,并且该库的使用src/{PROJECT_NAME}/imu.cpp生成的.这里的$里面还不是很清楚到底指的是本创建的包还是其他的包.

3). cs_add_executable(imu src/imu.cpp) 告诉编译器,我们依据包内src/imu.cpp创建了名称为imu的node

4). target_link_libraries(imu xxx-cpp) 告诉编译器,我们这个imu的node创建依赖xxx-cpp库函数的

(2)Package.xml

build_depend/run_depend 标签内放置的是这个包的依赖库,不过做ros开发时候,一般放的是ros官方认证的库,如tf/std_msgs等等库

下面是按照上面的大体流程修改的cmakelist.txt与package,并编译并可以启动的node:
ROS学习笔记14--C++编写源文件,生成node的一些问题解决经验总结
当编译通过了,出现过roscore启动错误,说网络没有配置好(所有的roslaunch指令都不能用了,之前没出现过).然后在bashrc文件里面export ROS_HOSTNAME标签重新换了一个ip,这个是ifcofig指令出来的其中一个ip啥的,具体原因不清楚,如果有哪位大神知道麻烦告知一下,写了.