带openssl1.1.1g的libcurl7.71.1多平台编译
项目路径
https://download.****.net/download/weixin_42206314/12746501
前期准备
安装
ActivePerl-5.24.2.2403-MSWin32-x86-64int-403863.exe。这个版本是必须的。
android-ndk-r16b。(r10e以上都可以,不过最好用这个,因为工程中的脚本文件引用的这个ndk)
VS2015(必须是这个,不能是VS2019)
windows平台
打开VS2015 x64 本机工具命令提示符,
进入到openssl的目录,
curl_build/curl/build/openssl-1.1.1g
输入命令
perl Configure no-asm VC-WIN64A --release --prefix=D:\Tools\curl_build\curl\build\openssl-1.1.1\build --openssldir=D:\Tools\curl_build\curl\build\openssl-1.1.1g\build
回车后,出现如下界面
结束后输入nmake
结束后输入nmake test
结束后输入nmake install
正常以上三条指令应该全部正常完成。然后就可以关闭窗口了。
打开文件夹curl_build/curl/build/curl-7.71.1
建立deps文件夹,在里面创建bin,include和lib三个文件夹
将编译openssl生成的库(libssl.lib,libcrypto.lib)拷贝到lib下,将openssl的include拷贝到include下
打开工程目录解决方案curl-all.sln
svn://10.2.6.19/Project_L/src/Tools/curl_build/curl/build/curl-7.71.1/projects/Windows/VC14/curl-all.sln
打开libcurl属性页,在配置中选择DLL Release - DLL OpenSSL
配置属性->常规->目标平台版本选择为10.0.14393.0(根据你本机系统选择)
配置属性->链接器->输入->附加依赖项,将libeay32.lib和ssleay32.lib分别改成libssl.lib,libcrypto.lib
配置属性->C/C++->常规->附加包含目录,增加..\..\..\..\deps\include
配置属性->链接器->常规->附加库目录,增加..\..\..\..\deps\lib
编译libcurl,上面改的是配置属性,编译时也要选择对应的配置才可以编译
最后生成了libcurl.dll(我是这个路径D:\libcurl\curl-7.71.1\curl-7.71.1\build\Win64\VC14\DLL Release - DLL OpenSSL)
Mac平台
cd openssl-1.1.1g(openssl的项目目录)
mkdir out
./Configure darwin64-x86_64-cc no-shared --prefix=`pwd`/out
make
make install
cd curl-7.71.1
autoconf # 出问题尝试请尝试 autoreconf -if
mkdir out
touch build_macOS.sh
chmod +x build_macOS.sh
./build_macOS.sh
make
make install
build_macOS.sh
#!/bin/sh
# $DIR 替换为openssl克隆的目录
export CPPFLAGS="-I$DIR/openssl/out/include"
export LDFLAGS="-L$DIR/openssl/out/lib"
./configure --prefix=`pwd`/out
安卓平台
先要安装android-ndk-r16b,然后在msys64中用如下命令运行
Tools\curl_build\curl\build\build_for_android.sh即可。
./build_for_android.sh /d/android-ndk-r16b /d/android-ndk-r16b 21 x86
其中前两个参数,都填ndk的绝对路径。第三个参数固定21,最后一个参数填写x86,arm,arm64三个参数。