ros学习笔记(三)
2022/3/27 6:24:13
本文主要是介绍ros学习笔记(三),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.自定义头文件调用
需求:设计头文件,可执行文件本身作为源文件。
流程:
-
编写头文件;
-
编写可执行文件(同时也是源文件);
-
编辑配置文件并执行。
1.1 头文件
在功能包下的 include/功能包名 目录下新建头文件: hello.h,示例内容如下:
#ifndef _HelLO_H #define _HELLO_H namespace hello_ns { class Hello { public: void run(); }; } #endif
注意:
在 VScode 中,为了后续包含头文件时不抛出异常,配置 .vscode 下 c_cpp_properties.json 的 includepath属性
"/home/用户/工作空间/src/功能包/include/**"
1.2 源文件编写
在 src 目录下新建文件:hello.cpp,示例内容如下:
#include "ros/ros.h" #include "功能包名/hello.h" namespace hello_ns { void Hello::run() { ROS_INFO("hello"); } } int main(int argc,char *argv[]) { ros::init(argc,argv,"hello"); hello_ns::Hello hello; hello.run(); return 0; }
1.3.配置文件
配置CMakeLists.txt文件,头文件相关配置如下:
include_directories( include ${catkin_INCLUDE_DIRS} )
配置可执行文件
add_executable(hello src/hello.cpp) add_dependencies(hello ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) target_link_libraries(hello ${catkin_LIBRARIES} )
然后编译执行即可;
2 自定义源文件调用
需求:设计头文件与源文件,在可执行文件中包含头文件。
流程:
-
编写头文件;
-
编写源文件;
-
编写可执行文件;
-
编辑配置文件并执行。
2.1 头文件
在功能包下的 include/功能包名 目录下新建头文件: haha.h,示例内容如下:
#ifndef _HAHA_H #define _HAHA_H namespace hello_ns { class My { public: void run(); }; }
同样的配置 .vscode 下 c_cpp_properties.json 的 includepath属性
2.2 源文件
在 src 目录下新建文件:haha.cpp,示例内容如下:
#include "功能包名/haha.h" #include "ros/ros.h" namespace hello_ns{ void My::run(){ ROS_INFO("hello,head and src ..."); } }
2.3.可执行文件
在 src 目录下新建文件: use_head.cpp,示例内容如下:
#include "ros/ros.h" #include "test_head_src/haha.h" int main(int argc, char *argv[]) { ros::init(argc,argv,"hahah"); hello_ns::My my; my.run(); return 0; }
2.4 配置文件
头文件与源文件相关配置:
include_directories( include ${catkin_INCLUDE_DIRS} ) ## 声明C++库 add_library(head include/test_head_src/haha.h src/haha.cpp ) add_dependencies(head ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) target_link_libraries(head ${catkin_LIBRARIES} )
可执行文件配置:
add_executable(use_head src/use_head.cpp) add_dependencies(use_head ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) #此处需要添加之前设置的 head 库 target_link_libraries(use_head head ${catkin_LIBRARIES} )
注意:配置可执行文件时,target_link_libraries中要同时包含和头文件相关的可执行文件与主函数的可执行文件
这篇关于ros学习笔记(三)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南