ROS 环境使用第三方动态链接库(.so)文件

2023-05-16

目录

1、背景

2、如何在编译时调用.so文件


1、背景

最近调试了一款设备,设备厂家没有直接给驱动的源码,而是给了一个动态链接库 (.so文件) 及对应的头文件的使用说明,由于需要集成到 ROS 中,这里主要记录下在ROS中使用第三方链接库的方法。

首先,创建ROS包的过程就略过去了,我在自己写的的ROS节点对应的cpp源文件中调用了第三方动态链接库的API接口,API接口都定义在相应的头文件中了,这些就按部就班的调用就行。

我在使用过程中遇到的最大的问题就是如何修改 CMakeLists.txt 文件的问题,因为自动生成的原始 CMakeLists.txt 文件中预定义的语句对于链接so文件是不全的

2、如何在编译时调用.so文件

假设我的节点源文件名为 test_node.cpp,需要调用的第三方动态链接库的名字叫 libThirdLib.so,我们要在该节点的根目录下(保姆提示:也就是跟存放cpp文件的src文件夹同级)创建一个文件夹存放 libThirdLib.so,文件夹命名随意,我这就叫 lib 了。

CMakeLists.txt 文件中对应的修改如下:

#。。。前面的部分省略。。。
include_directories(
  include/test_node  # 这个是相对于这个包的相对路径,头文件放在这里。如果放别的地方记得该这里的路径
  ${catkin_INCLUDE_DIRS}
)

# !!这个是需要手动加进去的,原始的 CMakeLists.txt 中没有!!
# 用于指定动态链接库的包含路径
# 另外一定要放在 add_executable() 的前面
link_directories(
  lib # 相对路径,指定动态链接库的访问路径
  ${catkin_LIB_DIRS}
)

add_executable(test_node src/test_node.cpp)

# 需要链接的库,在这里加入第三方动态链接库
target_link_libraries(test_node
  ${catkin_LIBRARIES}
  ThirdLib   # 加入需要链接的libThirdLib.so文件,注意去掉前缀 lib 和拓展名 .so(我猜lib前缀是在生成动态链接库时自动加上的)
)

总的来说需要加入 link_directories 语句来包含动态链接库的位置,并且一定要放在 add_executable() 的前面;然后在 target_link_libraries 中加入相应的动态连接库的名字,注意去点前缀 lib 和拓展名 .so

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

ROS 环境使用第三方动态链接库(.so)文件 的相关文章

  • 嵌入式软件工程师面试题收录(1)

    最近收集了许多嵌软的面试题 xff0c 内容都是在很多文章中剪下来的 xff01 1 用预处理指令 define 声明一个常数 xff0c 用以表明1年中有多少秒 xff08 忽略闰年问题 xff09 define SECONDS PER
  • 嵌入式软件工程师面试题收录(4)

    最近收集了许多嵌软的面试题和相关知识 xff0c 内容都是在很多文章中剪下来的 xff01 1 什么是物联网 xff1f 物联网的含义是什么 xff1f 万物互联 实时共享 xff0c 对物品进行智能化的识别 定位 跟踪 监控和管理的一种网
  • FreeRTOS个人笔记-挂起/解挂任务

    根据个人的学习方向 xff0c 学习FreeRTOS 由于野火小哥把FreeRTOS讲得比较含蓄 xff0c 打算在本专栏尽量细化一点 作为个人笔记 xff0c 仅供参考或查阅 配套资料 xff1a FreeRTOS内核实现与应用开发实战指
  • FreeRTOS个人笔记-消息队列

    根据个人的学习方向 xff0c 学习FreeRTOS 由于野火小哥把FreeRTOS讲得比较含蓄 xff0c 打算在本专栏尽量细化一点 作为个人笔记 xff0c 仅供参考或查阅 配套资料 xff1a FreeRTOS内核实现与应用开发实战指
  • 由浅入深吃透容器云+微服务+K8S+MQ+阿里云内部实施手册

    针对腾讯 百度 阿里 京东等100 43 家互联网公司 xff0c 对其技术方向进行调查和研究 从18年开始 xff0c 各大厂商都陆续把底层业务从KVM Vmware等底层架构开始逐步迁移到Docker 43 K8s体系中来 xff0c
  • Robotics XM430-W350 云台电机使用记录

    XM430 W350 是加拿大 Trossen Robotics 公司生产的一种伺服舵机 公司给这种电机配套了自研的控制协议以及开发 SDK 例程 Dynamixel SDK xff0c 此处记录下基于ROS 的开发例程的使用方法 xff0
  • STM32 FreeRTOS 二值信号量

    二值信号量可以用于任务同步 xff08 任务与任务间 xff0c 任务与中断间 xff09 假设有高 xff0c 中 xff0c 低三个任务 高级任务 xff1a API 创建一个二值量 并返回一个ID xff1a osSemaphoreC
  • 计算机组成原理重点总结(学习笔记)含计算公式

    计算机组成原理总结 一 计算机系统概述计算机系统的多层次结构冯 诺依曼机哈佛结构计算机性能指标 二 数据的表示和运算汉字的编码字符串的存放校验码原码 反码 补码 移码补码定点数的加 减运算浮点数的加 减运算浮点数的表示范围8位二进制整数范围
  • Linux——Firewalld防火墙基础(firewalld-cmd命令操作+firewalld-config图形管理工具)

    文章目录 前言一 Firewalld概述1 1 Firewalld1 2 Firewalld和iptables的关系1 3 Firewalld网络区域 二 Firewalld防火墙的配置方法2 1 firewall cmd命令行工具2 1
  • Centos中Docker的基本操作、镜像创建、数据管理、私有仓库的建立、端口映射和容器互联

    文章目录 一 Docker概述1 1 Docker概述1 2 Docker的核心概念及安装方式 二 Docker的基本操作2 1 环境准备及优化2 2 镜像的基本操作2 3 容器的操作 三 Docker镜像3 1 Docker镜像的分层3
  • 自编码器AutoEncoder解决异常检测问题

    自编码器AutoEncoder解决异常检测问题 一 自编码器 xff08 Auto Encoder xff09 介绍1 AE算法的原理2 AE算法的作用3 AE算法的优缺点 二 自编码器AutoEncoder解决异常检测问题 xff08 手
  • Snipaste(简单好用的截图工具)下载和使用

    下载 下载地址 xff1a https www snipaste com 简单版就够用了 绿色软件 xff0c 直接安装就行 使用快捷键 F1截图 xff0c 可测量大小 xff0c 设置箭头 xff0c 书写文字等F3在桌面置顶显示点击图
  • 通过外部中断按键去控制蜂鸣器开关

    EXTI功能说明 xff1a 要产生中断 xff0c 必须先配置好并使能中断线 根据需要的边沿检测设置2个触发寄存器 xff0c 同时在中断屏蔽寄存器的相应位写 1 允许中断请求 当外部中断线上发生了期待的边沿时 xff0c 将产生一个中断
  • 信号量的使用

    信号量 英文名字 xff1a semaphore 这里的进程信号量会为下列的信号量打基础 Ucos系统的信号量c线程的信号量java进程和线程的信号量 信号量作用 当多个进程 线程进行共享操作时 xff0c 用于资源保护 xff0c 以防止
  • 海康威视摄像头对接SDK实时预览功能和抓拍功能,懒癌福利,可直接CV

    海康威视摄像头完成实时预览功能和抓拍功能 背景思路 流程开发步骤1 海康的SDK xff0c 只需要在项目启动的时候初始化一次就行 xff0c 所以我直接将初始化SDK和加载DLL库的代码丢到启动类中去了 xff1a 2 先讲实时预览功能
  • 一、什么是SLAM?

    书中定义 xff1a slam是指移动智能体从一个未知环境里未知地点出发 xff0c 在运动过程中通过自身传感器观测周围环境 xff0c 并根据环境定位自身位置 xff0c 再根据自身的位置进行增量式的地图构建 xff0c 从而达到同时定位
  • ROS 创建工作空间流程

    本文以移植代码为例说明 目标是把一款云台SDK中的ROS代码部分抠出来移植到自己创建的工作空间中 记录下大致的流程 目录 1 创建工作空间 2 编译工作空间 xff08 可选 xff09 3 设置环境变量 xff08 可选 xff09 4
  • 边缘计算系列之MEC介绍

    前言 上篇内容 xff0c 跟大家简单介绍了边缘计算发展现状和边缘计算的基本概念 今天 xff0c 我们来讲讲MEC 目录 一 MEC的基本概念 二 MEC和边缘计算的关系 三 MEC的价值和优势 四 运营商MEC白皮书 1 MEC的基本概
  • 元学习(meta learning) 最新进展综述论文,28页pdf

    关注上方 深度学习技术前沿 xff0c 选择 星标公众号 xff0c 资源干货 xff0c 第一时间送达 xff01 本文综述了元学习在图像分类 自然语言处理和机器人技术等领域的应用 与深度学习不同 xff0c 元学习使用较少的样本数据集
  • 王海峰、李飞飞、山世光、王井东、汪玉……众多AI华人学者入选2022 IEEE Fellow...

    来源 xff1a 机器之心 北京时间 11 月 24 日凌晨 xff0c IEEE 公布了 2022 年度新一届会士的入选完整名单 IEEE 全称是美国电子电气工程师学会 xff08 Institute of Electrical and

随机推荐