Paho - MQTT.C 动态库编译

系统环境:Centos7

git clone https://github.com/eclipse/paho.mqtt.c.git

cd paho.mqtt.c

make

make install

在执行make阶段出现了错误:

build/output/libpaho-mqtt3cs.so:对‘OPENSSL_init_ssl’未定义的引用
build/output/libpaho-mqtt3cs.so:对‘OpenSSL_version’未定义的引用
build/output/libpaho-mqtt3cs.so:对‘OPENSSL_init_crypto’未定义的引用
build/output/libpaho-mqtt3cs.so:对‘TLS_client_method’未定义的引用
collect2: 错误:ld 返回 1

解决方法:安装openssl-1.1.1d版本

查看Openssl版本:openssl version
centos7默认提供的openssl版本是1.0.2的

1、下载openssl

cd /usr/local/src/
wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1d.tar.gz
tar -zxvf openssl-1.1.1d.tar.gz

2、编译openssl

cd openssl-1.1.1d
./config
make && make install

3、配置

注意:默认编译后,查看当前openssl版本号时,你会发现还是1.0.2,所以这里需要做一些额外的配置工作

echo "/usr/local/lib64/" >> /etc/ld.so.conf
ldconfig
mv /usr/bin/openssl /usr/bin/openssl.old
ln -sv /usr/local/bin/openssl /usr/bin/openssl


4、验证

openssl version

 安装完成后 重新执行:

make clean
make
make install

如果还是失败,需要编辑Makefile文件再进行编译

在文件中加入:

CFLAGS += -I/opt/openssl/1.1.1d/include  # openssl编译的include文件夹

LDFLAGS += -L/opt/openssl/1.1.1d/lib  # openssl编译的lib库文件夹,make的时候生成一般在build文件夹下

执行make install后,会在/usr/local/lib目录下生成动态库文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值