ROS 工作空间下编译库文件,安装库头文件到devel文件夹

Hello,欢迎来到我的博客
我们在ROS工作空间下编程时,可能会出现这一种情况:
我们在一个package下写了一个库,而在另一个package要引用这个库
这个时候该怎么处理呢?这篇文章就会告诉你。

ROS工作空间编译库文件的方法

这个相信大家都不陌生,只要在CMakeLists.txt文件中,加入如下命令即可:

add_library(${library_name} ${library_source_file})
target_link_libraries(${library_name} ****)

然后,在工作空间目录下,利用

catkin_make

即可完成编译
这个时候,我们去devel/lib文件夹下就能找到我们编译的库文件了,比如我们的library_name是hello的话,那么现在在devel/lib文件夹下就会有一个libhello.so的库文件了。

这个时候我们可以在其他package的CMakeLists.txt的target_link_libraries里面链接上hello了,但这个时候还有一个问题,hello这个库的头文件还没有被复制到devel/include的文件夹下面来,因此,我们还是无法在另一个库中include hello的头文件。

复制库头文件到devel文件夹下的方法

这个利用cmake的install功能就可以实现了,我们在CMakeLists.txt的最后添加如下语句:

install(FILES 
		${header_file}
		DESTINATION ${CATKIN_DEVEL_PREFIX}/include
)

这里,install的意思就是把header_file安装到${CATKIN_DEVEL_PREFIX}/include文件夹下。其中,CATKIN_DEVEL_PREFIX就是表示devel文件夹的变量。
另外,直接安装文件夹也是可以的:

install(DIRECTORY
		${header_directory}
		DESTINATION ${CATKIN_DEVEL_PREFIX}/include
)

然后,在编译的时候,我们需要采用如下命令:

catkin_make install

这时,头文件就被安装到devel目录下了,这个时候我们就可以在其他package中,直接引用这些头文件啦。

ROS 编译过程中的一些环境变量

ROS编译环境变量

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值