源码编译libcurl库

操作系统为 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目录中可以找到。

原文地址:https://www.cnblogs.com/huowenjie/p/13489844.html