美文网首页
交叉编译OpenSSL和paho.mqtt.c

交叉编译OpenSSL和paho.mqtt.c

作者: 只为博军一笑 | 来源:发表于2019-04-11 21:03 被阅读0次

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

    一、交叉编译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目录下

    相关文章

      网友评论

          本文标题:交叉编译OpenSSL和paho.mqtt.c

          本文链接:https://www.haomeiwen.com/subject/zvtfwqtx.html