libcurl+openssl多平台编译
curl-7.65.0 为例
Linux
openssl
1)进⼊openssl源码根路径,如:/home/user/openssl-master,执⾏以下命令:./config; make -j8
2)此时会在源码根⽬录⽣成 libcrypto.a libcrypto.so libssl.a libssl.so 等相应的crypto及ssl的静态库与动态库
libcurl
1)进⼊libcur源码根路径,执⾏以下命令:
2)依次执⾏以下命令
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=false
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-zlib
make -j8

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。