一、C++编程相关
1、使用c++时编译(修改CMakelist.txt)
(1)include_directories
用于设置头文件的相对路径。全局路径默认是功能包的所在目录,比如功能包的头文件一般会放到功 能包根目录下的include文件夹中,所以此处需要添加该文件夹。此外,该配置项还包含ROS catkin编译器默认包含的其他头文件路径,比如ROS默认安装路径、Linux系统路径等。
(2)add_executable
用于设置需要编译的代码和生成的可执行文件。第一个参数为期望生成的可执行文件的名称,后边的 参数为参与编译的源码文件(cpp),如果需要多个代码文件,则可在后面依次列出,中间使用空格进行分隔。
(3)target_link_libraries
用于设置链接库。很多功能需要使用系统或者第三方的库函数,通过该选项可以配置执行文件链接的 库文件,其第一个参数与add_executable相同,是可执行文件的名称,后面依次列出需要链接的库。此处编译的Publisher和Subscriber没有使用其他库,添加默认链接库即可。
(4)add_dependencies
用于设置依赖。在很多应用中,我们需要定义语言无关的消息类型,消息类型会在编译过程中产生相 应语言的代码,如果编译的可执行文件依赖这些动态生成的代码,则需要使用add_dependencies添加
{PROJECT_NAME}_generate_messages_cpp
配置,即该功能包动态产生的消息代码。该编译规则也可以添加其他需要依赖的功能包。
以 上 编 译 内 容 会 帮 助 系 统 生 成 两 个 可 执 行 文 件 : talker h和listener , 放 置 在 工 作 空 间 的
~/catkin_ws/devel/lib/<package name>
路径下。
网友评论