交叉编译OpenSSL和paho.mqtt.c

网络转载,侵权请联系删除

一、交叉编译OpenSSL

下载源码

官网

下载最OpenSSL V1.1.0

交叉编译

tar -xvf openssl-1.1.0g.tar.gz

cd openssl-1.1.0g/

./config no-asm shared --prefix=$PWD/install --cross-compile-prefix=arm-none-linux-gnueabi-

参数解析:

no-asm :Donotuseassembler code

shared: 编译连接成动态库

--prefix=$PWD/install : 指定编译后安装路径

--cross-compile-prefix=arm-none-linux-gnueabi- : 指定交叉编译工具链

具体信息请参看工程目录下INSTALL文档和config的帮助

修改Makefile,找到Makefile中的所有-m64的地方,然后删除(应该只有两处地方)。

make

make install

查看编译生成的库

cd install

ls

可以看到目录下:bin include lib ssl

压缩,放到开发板 /目录下

二、交叉编译 MQTT paho.mqtt.c

这是一个MQTT的客户端开源库,当然有其他语言的库,下面是对比情况:

本来是要在嵌入式环境下面用,但是发现嵌入式版本,很多特性都不支持,直接用C版本是不是会好一点,虽然缺少websocket的支持。

下载

交叉编译

因为这个有OpenSSL库的依赖,所以先要交叉编译OpenSSL。

unzip paho.mqtt.c-master

cd paho.mqtt.c-master

修改Makefile。在129行添加openssl的链接目录,注意改成你自己的路径。

...

CFLAGS += -I./../openssl-1.1.0g/install/include

LDFLAGS += -L./../openssl-1.1.0g/install/lib

...

修改完成之后,执行如下命令:

make CC=arm-none-linux-gnueabi-gcc


这样会在当前目录创建build目录,进入build目录,你能看到output目录和一个版本头文件,进入output,你能看到库文件,examples和测试程序。

头文件去src目录找。

为什么不执行make install呢?要执行make install还得修改Makefile文件,不然会出错的。才疏学浅,我还是本办法手动去拿这些库和头文件算了。

四个库文件在README里面有介绍:

The Paho C client comprises four shared libraries:

* libmqttv3a.so - asynchronous

* libmqttv3as.so - asynchronous with SSL

* libmqttv3c.so - “classic” / synchronous

* libmqttv3cs.so - “classic” / synchronous with SSL

放到开发板/usr/lib目录下

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 为了防止后来人走弯路本人综合网上的各路教程,统计出一个自己成功方便的路径,以便给其他有需求的人一些参考一开始...
    理科生爱学习阅读 5,377评论 0 1
  • 下载OpenSSL源码:https://www.openssl.org/source/ 进入openssl目录,创...
    木子_礼阅读 8,547评论 5 9
  • 问题:在X86环境下编译没问题的HTTP工程想要进行交叉编译,链接的时候出现搜索到的库.so文件格式不对。 问题很...
    Lazy_Caaat阅读 2,002评论 0 0
  • 寒蝉凄切,长亭向晚。 屋檐下,绮窗前,细雨轻轻敲打着一串金铃,在这寂寂黄昏,发出“叮零——叮零——”的细小声音,回...
    爰小木阅读 678评论 0 7
  • 刚刚跑了三公里,开年第一跑,其实我只是想轻松点,所以给了自己那么多的借口,很多事情其实在大学的时候我做的比现在好。...
    Fami爷阅读 170评论 0 1