在ROS系统中,向工作空间加入CPP库文件

除了常规C++添加头文件的操作外,还需要:

1.将cpp文件添加到src/lib文件夹里,避免和定义结点的cpp文件在同一文件层级;

2.在src/lib文件夹里编写CmakeList.txt文件,包含该lib的名称,库文件名,以及关联库
在这里插入图片描述此处lib名称为rec,包含了cluster.cpp源码,链接了catkin和PCL库

3.在功能包内的CmakeList.txt中添加子文件路径,add_subdirectory(src/lib)
如下图第78行,
并添加对rec库的依赖,如第82行,在末尾加入rec:
target_link_libraries(recog ${catkin_LIBRARIES} ${OpenCV_LIBRARIES} ${PCL_LIBRARIES} rec )
在这里插入图片描述
4.最终功能包内文件结构如下图
在这里插入图片描述
re为功能包名,include为头文件库,src中保存所有源码文件,src/lib保存include对应的cpp库文件,src/lib中含有一个CmakeList.txt文件,定义lib的名称等信息,功能包内的CmakeList.txt文件定义功能包编译方法。

未能正确包含库文件可能的报错:

  1. CMake Error: The source directory …does not appear to contain CMakeLists.txt
    没有在src/lib文件夹添加CmakeList.txt文件

  2. ld returned 1 exit status
    出现该问题是因为CmakeList.txt没有定义好,本文上述流程没有完成,导致main.cpp或者node.cpp文件根据编译规则(CmakeList.txt)找不到库cpp文件
    该问题发生时,将cpp库文件中的引用修改为错误状态不会引起报错,因为该文件没有被包括到编译范围内。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值