C/C++教程

Ubuntu16.04静态编译OpenSSL与libcurl

本文主要是介绍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.

这篇关于Ubuntu16.04静态编译OpenSSL与libcurl的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!