libcurl + openssl 多平台编译

curl-7.65.0 为例linux

Linuxcurl

opensslui

1)进入openssl源码根路径,如:/home/user/openssl-master,执行如下命令:./config; make -j8 url

2)此时会在源码根目录生成 libcrypto.a libcrypto.so libssl.a libssl.so 等相应的crypto及ssl的静态库与动态库spa

 

libcurldebug

1)进入libcur源码根路径,执行如下命令:blog

2)依次执行如下命令ssl

mkdir build; cd build源码

make ../ -DOPENSSL_ROOT_DIR=/home/user/openssl-master -DBUILD_SHARED_LIBS=true -DCURL_DISABLE_LDAP=true -DCURL_DISABLE_LDAPS=true -DCURL_ZLIB=falseopenssl

make -j8

3)此时会生成在 build/lib 目录会生成 libcurl.a 静态库文件

将如下libcurl.a libssl.a libcrypto.a 或者相应.so拷贝到应用工程上连接

 

Windows

openssl

1)进入openssl源码根路径,如:D:\openssl-master

2)新建build.bat 文件,并保存如下内容:

set CURPATH=%~dp0
set TARGET="VC-WIN64A-masm"
set VSCOMNTOOLS="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvarsall.bat"
set SHARED=

call %VSCOMNTOOLS% x64
mkdir build
cd build

perl ../Configure %TARGET% %SHARED% --prefix="%CURPATH%\build\prefix" --openssldir="%CURPATH%\build\install" --release
perl configdata.pm --dump

nmake build_all_generated
nmake PERL=no-perl
nmake install

cd ..

脚本说明:

    若是编译32bit的,将TARGET修改成VC-WIN32,call %VSCOMNTOOLS% x64 修改成 call %VSCOMNTOOLS% x86,

    若是编译debut版本,将--release 修改成 --debug

3)执行 build.bat 文件。此时会在--prefix目录下生成 crypto、ssl 相应的静态库与动态库,以下

文件说明:

若是使用动态连接,须要拷贝libssl.lib libcrypto.lib libssl-3.dll libcrypto-3.dll 到应用工程

若是使用静态罗拉,须要拷贝libssl-static.lib libcrypto-static.lib 到应用工程

 

libcurl

1)进入libcur源码根路径,执行如下命令:

2)依次执行如下命令

mkdir build; cd build

cmake ../ -G"Visual Studio 15 2017 Win64" -DOPENSSL_ROOT_DIR=D:\openssl-master\_build\ -DBUILD_SHARED_LIBS=true -DCMAKE_USE_OPENSSL=true -DCMAKE_C_FLAGS_RELEASE=/MT

3)此时会在 build\lib\Release目录(Debug为build\lib\Debug目录)生成 libcurl.lib 文件

4)libcurl 没有把openssl相应的静态库连接进去,因此跟linux同样,其它工程须要使用时,也须要将libssl-static.lib libcrypto-static.lib 以及libcurl.lib 同时指定连接

 

说明:openssl会同时生成静态库与动态库,libcurl根据自身选择是静态库仍是动态库。此文以静态为例,动态库也相似再也不描述,以建议或疑问欢迎留言

 

 

MacOS

openssl

 由于libcurl推荐使用 darwinssl,openssl未验证,暂时留空,后续补充。若博友愿意分享,留言一下连接地址,在此先谢过

libcurl

1)进入libcur源码根路径,执行如下命令:

2)依次执行如下命令

./configure --with-darwinssl --disable-ldap --disable-ldaps --without-zlibmake -j8