Android : 移植curl-7.61.1 及 openssl-1.1.0i
一、curl-7.61.1 Android平台移植:
libcurl是一个免费且易于使用的客户端URL传输库,支持DICT、FILE、FTP、FTPS、Gopher、HTTP、HTTPS、IMAP、IMAP、LDAP、LDAPS、POP3、POP3S、RTMP、RTSP、SCP、SFTP、SMTP、SMTPS、Telnet和TFTP。libcurl支持SSL证书、HTTP POST、HTTP PUT、FTP上传、基于HTTP表单的上传、代理、cookie、用户+密码验证(Basic、Digest、NTLM、negotiating、Kerberos)、文件传输简历、HTTP代理隧道等等!
libcurl是高度可移植的,支持许多平台,包括Solaris、NetBSD、FreeBSD、OpenBSD、Darwin、HPUX、IRIX、AIX、Tru64、Linux、UnixWare、HURD、Windows、Amiga、OS/2、BeOs、Mac OS X、Ultrix、QNX、OpenVMS、RISC OS、Novell NetWare、DOS等…
libcurl是免费的、线程安全的、与IPv6兼容的、功能丰富的、支持良好的、快速的、完整的文档化的,已经被许多知名的、大型的和成功的公司所使用。
(1)最新的版本可到curl官网下载:https://curl.haxx.se/download.html
(2)编译:(注:从执行配置指令后的输出信息可以看到默认不支持SSL,需要增加-with-ssl=选项,指定的路径是openssl源码交叉编译后的install目录)
---》CC=arm-linux-androideabi-gcc ./configure --host=arm-linux prefix=$PWD/tmp --enable-shared=no --enable-static=yes --disable-ldap --disable-ldaps -with-ssl=/home/sheldon/workSpace/openssl-1.1.0i/tmp CFLAGS="-pie -fPIE" LDFLAGS="-pie -fPIE"
---》make && make install
(3)使用:将tmp目录下生成的头文件及库添加到Android工程:
方法一:
##########################################
#预编译到SDK系统库目录 include $(CLEAR_VARS) LOCAL_MODULE := libcurl LOCAL_SRC_FILES := libcurl.a LOCAL_MODULE_TAGS := optional LOCAL_MODULE_OWNER := sheldon LOCAL_MODULE_SUFFIX := .a LOCAL_MODULE_CLASS := STATIC_LIBRARIES LOCAL_MODULE_PATH := $(TARGET_OUT)/lib include $(BUILD_PREBUILT)
##########################################
#另外在对应的Android.mk添加静态库依赖即可
LOCAL_WHOLE_STATIC_LIBRARIES += libjbvad libcurl
方法二:
LOCAL_LDFLAGS+=/xxx/libcurl.a
二、 openssl-1.1.0i Android平台移植:
OpenSSL即Secure Sockets Layer(安全套接层协议)是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。
由于需要移植到Android平台,要使用xx交叉编译器,但不支持链接pthread库,需要修改Makefile去掉-pthread的选项,而新版的源码必需要使用到,所以最后使用的是1.1.0i的版本:
(2)编译:
---》 CC=arm-linux-androideabi-gcc ./Configure no-asm --prefix=$PWD/tmp linux-armv4
---》 make && make install
(3) 库的调用方法同上。注:libcurl 要同时依赖 libcrypto 和 libssl。
posted on 2018-10-24 15:39 sheldon_blogs 阅读(1215) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY