【无标题】

编写自己的ROS2库供自己使用

编写库函数时,没有main()函数,只有提供接口,那么如何编写CMakeLists.txt文件?


问题描述

按照一般节点来编写CMake文件,将出现以下错误:

aamir@aamir-WRTB-WXX9:~/Documents/UWB$ colcon build --packages-select kf
Starting >>> kf      
--- stderr: kf                              
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x24): undefined reference to `main'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/kalman_filter.dir/build.make:131: kalman_filter] Error 1
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/kalman_filter.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---
Failed   <<< kf [4.93s, exited with code 2]

Summary: 0 packages finished [5.14s]
  1 package failed: kf
  1 package had stderr output: kf


原因分析:

主要是因为库函数只是接口,没有入口函数(undefined reference to `main’);所以应该按照接口方式来修改CMake文件。


解决方案:

# 添加头文件(如果有,一般都有)
include_directories(include
)
# 添加库函数路径
add_library(${PROJECT_NAME}
  src/kalman_filter.cpp
)

接口(库)函数定义完毕!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值