一、生成.so文件

在ros中编译.so文件,如同在vs中编译C++版的dll文件。具体步骤如下:

步骤1:

首先建立.h文件和一个.cpp文件(该.cpp文件就是此次封装的内容)

 

步骤2:

在该节点下的CMakeLists.txt文件中,如果cpp文件名为apsplan,则加入以下语句:

Indigo:

## Declare a C++ library

add_library(apsplan
  src/apsplan.cpp

)

Jade:

有些版本需要加入下面这些内容:

# add_library(lidarcenter

# src/lidarcenter.cpp

# )

# add_dependencies(lidarcenter ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

# target_link_libraries(lidarcenter

# ${catkin_LIBRARIES}

# )

 

# add_library(trackingManager

# src/trackingManager.cpp

# )

# add_dependencies(trackingManager ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

# target_link_libraries(trackingManager

# ${catkin_LIBRARIES}

# )

 

 

 

步骤3:

编译整个工作空间,即可在devel文件夹下找到libapsplan.so文件

 

 

二、使用.so文件

.so文件的使用

方法一:

1、将.so文件粘贴到devel/lib文件夹下

2、该节点的CMakeLists.txt文件下添加

link_directories(
  ${catkin_LIB_DIRS} ~/aps/devel/lib

)

add_executable()

target_link_libraries(zzbpathplanner
  ${catkin_LIBRARIES} libapsplan.so

)

3、正常条件apsplan.h头文件,正常在其他文件中进行引用和调用即可

 

方法二:

//修正一下,一般放在 devel/lib下面当重新编译的时候,需要重新删除并加载。这个比较麻烦,所以,一般我们推荐放在工程目录下方。

放置 头文件的位置:

include_directories( include

${catkin_INCLUDE_DIRS}

)

 

放置 库文件位置并加入到ROS头文件目录当中;并链接加入到 ROS 库目录当中:

include_directories( lib

${catkin_INCLUDE_DIRS}

)

link_directories(${catkin_LIB_DIRS} lib)

 

 

下面一句话的作用是把 .so文件加入到 可执行文件当中。

 

target_link_libraries(buusensorlidar ${catkin_LIBRARIES} liblidarcenter.so)

target_link_libraries(buusensorlidar ${catkin_LIBRARIES} libtrackingManager.so)

 

 

 

4、其他的一些问题

[ERROR] [1509452574.424128193]: Client [/buumonitor] wants topic /buusensorgps to have datatype/md5sum [common_msgs/buusensorgps/b45936dca092ea1d9358028750aca1c5], but our version has [common_msgs/buusensorgps/faf7be4a282d2a654e8227d65f89b918]. Dropping connection.

 

这个原因是 数据类型不一致导致的。

还有一种情况也会导致类型不一致,当ROS版本不一致的时候,我们在indigo 下面封装的代码在jade当中无法使用,提示 dayatype/md5sum问题。

 

未定义的引用:

肯定是库目录错误导致的。

 

 

Roboware 下打包成so 文件并引用的更多相关文章

  1. Python Windows下打包成exe文件

    Python Windows 下打包成exe文件,使用PyInstaller 软件环境: 1.OS:Win10 64 位 2.Python 3.7 3.安装PyInstaller 先检查是否已安装Py ...

  2. 关于解决pyinstaller2.1将.py打包成exe文件在中文目录下不能执行的问题

    关于解决pyinstaller2.1将.py打包成exe文件在中文目录下不能执行的问题 这个问题困扰我好久了,今天终于非常偶然的在http://www.v2ex.com/t/113856#reply1 ...

  3. 将 Python3 文件打包成 exe 文件

    我们用 Python 写好的代码,如何给别人在没有配置 Python 环境的情况下直接使用呢?尤其是面向 windows 众. 因为 Python 是一门解释性的语言,离开了 Python 解释器,P ...

  4. 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件

    1.背景: 学习java时,教材中关于如题问题,只有一小节说明,而且要自己写麻烦的配置文件,最终结果却只能转换为jar文件.实在是心有不爽.此篇博客教你如何方便快捷地把java代码,打包成jar文件以 ...

  5. 初级——程序如何打包成apk文件

    将Eclipse Android项目打包成APK文件是本文要介绍的内容,主要是来了解并学习Eclipse Android打包的内容,具体关于Eclipse Android内容的详解来看本文.Eclip ...

  6. Eclipse中将含有图片资源的项目打包成jar文件

    前言: 最近学了GUI编程和UDP协议,心血来潮想做一个局域网内的聊天软件,前期都还算顺利,直到后来将整个项目打包成jar文件时遇到了困难.如图: 自己设置的图标不见了,但是也没有默认的图标,说明图片 ...

  7. java打包成jar文件

    JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包.当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成.JAR包是 ...

  8. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)

    Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer   Advanced Installer :Free for 30 da ...

  9. 【iOS越狱开发】如何将应用打包成.ipa文件

    在项目开发中,我们常常需要将工程文件打包成.ipa文件,提供给越狱的iphone安装. 下面是一种方法: 1.首先应该给工程安装好配置文件(这里不再敖述),在ios device的状态下,运行成功. ...

随机推荐

  1. hdu 5108(数论-整数分解)

    Alexandra and Prime Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (J ...

  2. 考勤的lua脚本

    ngx.header.content_type = "text/plain;charset=utf-8" local cjson = require "cjson&quo ...

  3. 【原创】Win Server 2012R2 IIS 详细配置(多图详解)

    1. 前期准备 1) 2012系统的IIS安装的时候,需要系统安装盘里面的一些软件,因此需要在安装前将系统安装盘挂载到服务器的盘符上,以便使用. 2. 添加角色和功能 打开服务器管理器,点击管理菜单, ...

  4. Laravel 5.5 Blade::if 简介

    Laravel 5.5 引入了一个新的黑科技,就是你可以使用 Blade::if 来进行一些简单的逻辑判断啦!想不出应用场景在哪?想象下面的场景: 判断一个用户是否是 admin 判断应用的开发环境不 ...

  5. 使用navicat连接linux服务器数据库方法

    主机名用localhost 要使用SSH连接

  6. Educational Codeforces Round 33 (Rated for Div. 2) B. Beautiful Divisors【进制思维/打表】

    B. Beautiful Divisors time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  7. Codeforces 813E Army Creation(主席树)

    题目链接  Educational Codeforces Round 22 Problem E 题意  给定一个序列,$q$次查询,询问从$l$到$r$中出现过的数字的出现次数和$k$取较小值后的和 ...

  8. H. Fake News (medium)

    H. Fake News (medium) 题意 以前是给出 S T 串,问在 S 中有多少个子串为 T 的个数,子串可以不连续,保持位置相对一致. 现在给出 n ,要你构造 S T 串. 分析 这种 ...

  9. 注册表数据提取工具RegRipper

    注册表数据提取工具RegRipper   注册表是Windows操作系统一个数据库,用来存储系统和应用程序设置信息.注册表信息分别保存在操作系统中的6个Hive文件中.获取这几个文件,就可以从中提取注 ...

  10. 后门构建工具Backdoor Factory

    后门构建工具Backdoor Factory   在渗透测试中,后门程序帮助渗透测试人员在目标机器上执行各种预期的操作.例如,它可以建立从目标主机到攻击机的网络连接,方便渗透测试人员控制目标主机.Ka ...