1.编译安装 openssl
从官网下载最新版本:https://www.openssl.org/source/
首先解压下载好的安装包 openssl-1.1.1m.tar.gz
tar xzvf openssl-1.1.1m.tar.gz
然后进入目标目录进行编译
cd openssl-1.1.1m
./config
make
sudo make install
此时,openssl已安装完毕,可通过 make test 测试。
- 查看openssl版本:openssl version 出现以下错误:
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
解决办法:
ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
- 编译安装 libcurl
curl库下载地址:https://curl.haxx.se/download.html
同样下载解压安装包后(curl-7.81.0.tar.gz),进入工程目录进行编译
tar xzvf curl-7.81.0.tar.gz
cd curl-7.81.0
./buidconf
./configure --prefix=/usr/local/curl-7.81.0/
make
sudo make install
即完成安装。
3.编写 https 代码
代码参考:Linux C/C++实现https post/get请求
- 如出现以下报错:
configure error: select TLS backend(s) or disable TLS with --without-ssl
解决办法:
执行configure脚本时,使用以下指令:
./configure --prefix=/usr/local/curl-7.81.0/ --with-wolfssl
然后配置环境:
sudo vi /etc/bash.bashrc
在最后添加:
LIBRARY_PATH=/usr/local/curl-7.81.0/lib
export LIBRARY_PATH
保存退出,并更新环境:
source bash.bashrc
此时可使用curl指令:curl http://www.baidu.com
- 在使用libcurl的程序编译过程中,如出现以下报错:
/usr/bin/ld: 找不到 -lcurl
解决办法:
locate libcurl.so
显示结果,在 /usr/lib/x86_64-linux-gnu 目录下没有libcurl.so,即需要创建:
sudo ln -sf /usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0 /usr/lib/x86_64-linux-gnu/libcurl.so
这样编译时即可找到 -lcurl
- 在使用libcurl的程序编译过程中,如出现以下报错:
fatal error: curl/curl.h: 没有那个文件或目录
解决办法:
sudo cp -r /usr/local/curl-7.81.0/include/curl /usr/include