操作系统为 Ubuntu 18.04.1 LTS
gcc 版本为 gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)
libcurl 版本 curl-7.71.1.tar.gz
openssl 版本 openssl1.1.1d
1.首先下载 libcurl 库的源代码包 curl-7.71.1.tar.gz,解压;
2.下载 openssl1.1.1d 源码包,并编译 openssl (编译过程略),得到 libssl.a 以及 libcrypto.a 两个共享库;
3.回到 libcurl 源码包目录下, 执行./configure 生成 Makefile
3.1 Makefile中的 CPPFLAGS 需要添加 2 个选项
(1)-I/home/xxx/xxx/openssl-1.1.1d/include代表 openssl 对外提供的头文件路径(第二个字符为 i 的大写);
(2)-fPIC 生成位置无关代码;
3.2 链接选项 LDFLAGS 需要添加链接的共享库搜索目录,链接库选项 -lssl -lcrypto -ldl -pthread 会自动加上,所以这里不用加
-L/home/xxx/xxx/openssl-1.1.1d/
3.3 添加 openssl 安全套接字协议库 libssl.a 和加密算法库 libcrypto.a 的路径以增加对 HTTPS、FTPS 等协议的支持
--with-ssl=/home/xxx/xxx/openssl-1.1.1d/
然后执行命令:
./configure CPPFLAGS="-I/home/xxx/xxx/openssl-1.1.1d/include/openssl -fPIC" LDFLAGS="-L/home/xxx/xxx/openssl-1.1.1d/" --with-ssl=/home/xxx/xxx/openssl-1.1.1d/
4.执行命令 make 编译,编译完成后可在 lib/.libs/ 下找到 libcurl.so.4.6.0 (soname为 libcurl.so.4)库文件,头文件则在源码目录下/include/curl目录中可以找到。