paho mqtt移植,交叉编译器库移植

 为了让linux开发板运行mqttclient服务,需要移植mqtt库,一拨三折。移植过程记忆深刻,在这里记录下。

库移植

库移植就是将src源文件编译生成与开发环境适配的动态库,静态库,安装到指定库路径搜索目录下,列如linux下usr/include(头文件),usr/lib(静态库和动态库)下,这样写程序编译时,就能正确的找到库文件。

1下载源文件     

源文件下载地址:https://projects.eclipse.org/projects/iot.paho/downloads

源文件中README.md有介绍怎么编译源码。

2安装libssl-Dev(OpenSSL)依赖库以及cmake工程管理工具

3创建生成文件目录,便于管理

    在源文件下CMakefile.tx同级目录下创建一个文件夹bulid(名字无所谓,主要是存放编译后生产的文件)

mkdir     build

cd    build

4,指定交叉编译器,创建makefile

通过 -DCMAKE_C_COMPILER指定交叉编译器,以下是我的交叉编译器目录,同时你也可以指定库安装目录,这样就可以不用手动cp到库搜索目录中了,提前说明我没有使用openssl加密,如果你要使用ssl,请自行查看REAMED.md,通cmake进行编译源码:

cmake -DCMAKE_C_COMPILER=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc ..

 

末尾.. 表示在上级目录查找CMAKElist.txt文件,通过此命令就会产生对应的Makefile文件.

5编译源码

  直接make

6 cp头文件到头文件目录中,库文件到库搜索目录中,这里说明下,如果先前指定了安装目录,应该直接通过make install就可以了,而我没指定,需要cp.还有最重要的事是,交叉编译器的搜索目录跟我们操作系统上路径不一样。通过以下命令查看交叉编译器的搜索目录,特别注意要对应自己的交叉编译器。

echo 'main(){}'|arm-linux-gnueabuhf-gcc -E -v -  

 

include对应头文件目录,LIBRARY_PATH对应库路径(*so,*.a),从中随便选取对应目录,将文件cp到对应目录上

 

7 终端ldconfig下,该命令刷新动态链接库名字列表,就是让系统知道有新的库添加进来了,不然会出现undefine  *****现象.

到这里库移植就结束了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值