官网
下载最OpenSSL V1.1.0
下载压缩包即可,本人因为使用其他程序已经使用了openssl1.0.0,所以我下载了1.0.0的编译.
tar zxvf openssl-1.0.0t.tar.gz
cd openssl-1.0.0t/
./config no-asm shared --prefix=$PWD/install --cross-compile-prefix=/home/zsj/openwrt/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mipsel-openwrt-linux-uclibc-
./config参数解析
no-asm : Do not use assembler code
shared : 编译连接成动态库
--prefix=$PWD/install : 指定编译后安装路径
--cross-compile-prefix=/home/zsj/openwrt/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mipsel-openwrt-linux-uclibc-: 指定交叉编译工具链,我用了绝对路径
修改Makefile,找到Makefile中的所有-m64,或者-m32的地方,然后删除(应该只有两处地方),很重要。
make
make install
查看编译的结果
我的编译文件在,......../openssl-1.0.0t/文件夹内,没有到install中
此处已经OK,之后编译MQTT只要加入openssl路径即可
下载,可使用git,也可以去下载压缩包解压,我的git速度不行都用下载压缩包的方法.
git clone https://github.com/eclipse/paho.mqtt.c.git
cd paho.mqtt.c
修改Makefile。在129行添加openssl的链接目录,注意改成你自己的路径。
...
CFLAGS += -I./../openssl-1.0.0t/install/include
LDFLAGS += -L./../openssl-1.0.0t/install/lib
...
修改完成之后,执行如下命令:我都用绝对路径
make CC=/home/zsj/openwrt/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mipsel-openwrt-linux-uclibc-gcc
这样会在当前目录创建build目录,进入build目录,你能看到output目录和一个版本头文件,进入output,你能看到库文件,examples和测试程序。
(图片抄袭)
完成上面的步骤只是将MT7620这个产品支持了MQTT库,并没有写应用程序测试
将Ubuntu下mqtt编译好的例子复制到MT7620产品中,放在/test文件夹下,如图
./MQTTClient_publish