ROS学习笔记(3):添加第三方依赖库

2023-05-16

最近在工控机上加入CAN卡,想利用CAN卡来做为数据收发。现在在工程中加入CAN卡的头文件和自己做的cpp文档。已经申明了

函数,但是还是会出现上图所示的错误,经过一晚上的战斗算是搞清楚了。感谢@头发还没秃的帮助哈。

问题原因:没有添加第三方依赖库。

解决方案:

在ROS下使用第三方库的话可以直接修改pkg所对应的CMakeLists.txt。

添加头文件搜索路径: 在include_directories()添加所需要的头文件目录, 相当于编译过程中的 -I命令。
添加库文件搜索路径: 在link_directories()里添加所需要的库的目录,相当于编译过程中的 -L命令。
添加对库的链接:在target_link_libraries()里面添加需要添加的库的名称,相当于编译过程中的-l命令。

原库中的make编译文件。

CROSS_COMPILE =

.PHONY : clean

AS              = $(CROSS_COMPILE)as
LD              = $(CROSS_COMPILE)ld
CC              = $(CROSS_COMPILE)gcc
CPP             = $(CROSS_COMPILE)g++ -fPIC
AR              = $(CROSS_COMPILE)ar
NM              = $(CROSS_COMPILE)nm
STRIP           = $(CROSS_COMPILE)strip
OBJCOPY         = $(CROSS_COMPILE)objcopy
OBJDUMP         = $(CROSS_COMPILE)OBJDUMP
RANLIB			= $(CROSS_COMPILE)ranlib
CFLAGS			=  -I /usr/local/include/libCanCmd/
LDFLAGS		= -L /usr/lib/ -lCanCmd 
OBJS 			= 
all:	clean  testLikeCan
	
testLikeCan:
	$(CPP)  -g -o testLikeCan testLikeCan.c -lpthread  -lCanCmd
%.o: %.c
	$(CPP) $(CFLAGS) -g -fPIC -c  $< -o $@ 

clean :
	rm -fr *.o libCanCmd.so testLikeCan
install:
	cp dll/libCanCmd.so /usr/lib/
	ldconfig
uninstall:
	rm -f /usr/lib/libCanCmd.so

其中:CFLAGS            =  -I /usr/local/include/libCanCmd/
LDFLAGS        = -L /usr/lib/ -lCanCmd  

根据原有库的make文档写出的cmake.txt文档。

include_directories(
  include ${catkin_INCLUDE_DIRS}
  /usr/local/include/libCanCmd/
# include
# ${catkin_INCLUDE_DIRS}
)
link_directories(
  ${catkin_LIB_DIRS}
  /usr/lib/
)
add_executable(auto_run  
include/canopen/lowerpc.h
include/canopen/socketcon.h
include/canopen/scanner.h
include/canopen/type.h
include/canopen/ICANCmd.h
src/auto_run.cpp
src/socketcon.cpp 
src/scanner.cpp 
src/minipcie_can.cpp
# src/lowerpc.cpp 
)
add_dependencies(auto_run ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(auto_run
  ${catkin_LIBRARIES}
  CanCmd
)

修改完成。 经过编译后成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS学习笔记(3):添加第三方依赖库 的相关文章

  • STM32 HAL库 串口接收不定长数据(帧头)

    写的比较垃圾 xff0c 将就着用 欢迎各位大佬指导 xff0c 我这里要用串口中断接收两种帧头的数据 xff0c 1 以0x0D 0x0A为帧头的数据 2 xff0c 以0x55 0xA5为帧头的数据 两数据包帧头不同 大小不同 其中定义
  • freeRTOS系列教程之【第一章】FreeRTOS概述与体验

    文章目录 教程目录1 1 FreeRTOS目录结构1 1 FreeRTOS目录结构1 2 核心文件1 3 移植时涉及的文件1 4 头文件相关 1 4 1 头文件目录1 4 2 头文件 1 5 内存管理1 6 Demo1 7 数据类型和编程规
  • 【RTOS的最通俗理解】行业大佬用一篇文章带你快速理解RTOS

    文章目录 单片机 RTOS 架构 1 RTOS的概念 1 1 用人来类比单片机程序和RTOS 1 1 1 我无法一心多用1 2 2 我可以一心多用 1 2 程序简单示例 2 架构的概念 2 1 用人来类比电子产品2 2 要深入理解RTOS就
  • 开源网络模拟器ns-3 架构与实践

  • 四、freeRTOS_同步互斥与通信概述

    目录 1 同步与互斥的概念 2 同步的例子 xff1a 有缺陷 3 互斥的例子 xff1a 有缺陷 4 通信的例子 xff1a 有缺陷 5 FreeRTOS的解决方案 对应程序 xff1a 12 freertos example sync
  • 五、freeRTOS_队列的使用

    目录 1 队列的理论讲解 1 1 常规操作 2 队列的常规使用 3 队列集 1 队列的理论讲解 1 1 常规操作 队列的简化操如入下图所示 xff0c 从此图可知 xff1a 队列可以包含若干个数据 xff1a 队列中有若干项 xff0c
  • 从零开始的leetcode刷题(使用python)Day1

    从零开始用python刷leetcode xff0c 随手记录一些tips 1 哈希表 xff08 leetcode第一题两数之和 xff09 哈希表也叫作散列表 xff0c 数据结构提供了键 xff08 key xff09 和值 xff0
  • [深度学习] 神经网络中的 batch 和 epoch

    参考文章为 神经网络中Batch和Epoch之间的区别是什么 xff1f Sample Sample是单个数据 即有意义的数据的最小单位 训练数据集由许多Sample组成 batch batch是一个人为设定的超参数 batch的意思是 批
  • Windows开启ftp服务-使用Xlight FTP Server

    适用于windows系统 xff0c 使用Xlight FTP Server软件 下载地址 xff1a 点击此处下载 1 将下面的软件 xff0c 安装在电脑上 2 开启ftp服务 点击程序主界面左上角 xff0c 默认端口号为21 xff
  • 控制理论中的常用定义与定理

    以下内容摘自 应用非线性控制 对于自治系统 xff08 在本书中与定常系统等价 xff09 一句话总结 xff1a 初始状态的足够小能够保证系统状态范数的任意小 不变集理论可以在V导为半负定时推导出渐进稳定的结论 xff0c 但只适用于自治
  • centos8服务器安装nginx

    安装nginx 安装依赖包 yum span class token parameter variable y span span class token function install span gcc zlib zlib devel
  • 部署hexo遇到报错ERROR Deployer not found: git的解决办法

    部署hexo遇到报错ERROR Deployer not found git的解决办法 今天部署hexo的时候遇到一个报错 hexo c span class token operator amp amp span hexo g span
  • npm install hexo-renderer-sass时报错解决办法

    npm install hexo renderer sass时报错 在安装配置hexo博客的时候 xff0c 有的主题需要安装 span class token function npm span span class token func
  • 实用工具网站推荐

    速写板 可以随时开一个web网页进行书面草稿的网站
  • kaggle 免费gpu,optuna学习,python中*的用法

    kaggle import optuna def obj trial x 61 trial suggest float 34 x 34 7 7 y 61 trial suggest float 34 y 34 7 7 return x 1
  • BFS题单总结

    BFS题单汇总 此文章用来记录遇到的经典的从某个点到达某个边界或者指定点的BFS题目 xff0c 将持续更新 1926 迷宫中离入口最近的出口 span class token keyword class span span class t
  • Java/C++输入输出特定格式模板总结

    Java输出每个数字占5个空格 xff0c 此输出模式见洛谷1443题 span class token class name System span span class token punctuation span out span c
  • DFS题单以及模板汇总

    此文章是为了记录自己学习DFS算法以及记录写过的DFS题单汇总 xff0c 持续补充 P1605 迷宫 迷宫 题目描述 给定一个 N M N times M N M 方格的迷宫 xff0c 迷宫里有
  • MacOS 用typora和picGo配置腾讯云COS图床

    MacOS 用typora和picGo配置腾讯云COS图床 首先去PicGo最新下载网址 xff0c 点击PicGo 2 3 0 dmg下载后安装 安装好了之后双击之后没有看到对应的启动icon xff0c 实际上是在上面的标题栏的右侧 x
  • 线段树 模板 Java语言版

    线段树 模板 Java语言版 P3373模板 线段树 2 题目描述 如题 xff0c 已知一个数列 xff0c 你需要进行下面三种操作 xff1a 将某区间每一个数乘上 x x x 将某区间每一个数加上 x

随机推荐