Ubuntu16.04静态编译OpenSSL与libcurl

一、背景

某个工程中需要使用libcurl访问https网站,为了可移植性,需要将libcurl编译成静态的。由于访问的是https开头的网站,所以还需加入对OpenSSL的编译,同样使用编译。


二、静态编译OpenSSL

1、下载OpenSSL源码:

git clone https://github.com/openssl/openssl.git
git checkout -b OpenSSL_1_0_0-stable origin/OpenSSL_1_0_0-stable
git pull

2、./config --prefix=/path/to/openssl -fPIC no-shared no-dso no-ssl3 //–prefix指定安装路径

3、make depend

4、make

5、make install


三、静态编译libcurl

1、下载源码包:

https://curl.haxx.se/download/curl-7.75.0.tar.gz(按需选择包版本:https://curl.haxx.se/download/),进入源码目录。

2、./configure --prefix=/path/to/curl --disable-shared --enable-static --with-ssl=/path/to/openssl --without-libidn --without-librtmp --without-nss --without-libssh2 --without-zlib --without-winidn --without-gnutls --disable-rtsp --disable-dict --disable-telnet --disable-tftp --disable-pop3 --disable-imap --disable-smtp --disable-gopher --disable-ldap

3、make

4、make install


四、将OpenSSL与libcurl的库和头文件拷贝到工程相关目录

需要拷贝的文件和文件夹如下:

/path/to/openssl/lib/目录下 libssl.a libcrypt.a

/path/to/openssl/include/openssl 整个目录

/path/to/curl/lib/目录下libcurl.a

/path/to/curl/include/curl 整个目录

编译时记得加上相应的头文件路径,以及链接时加上 -lcurl -lssl -lcrypt.

上一篇:基于android的ffmpeg的编译


下一篇:最全 Adobe 系列产品 CS6版本 序列号/注册码