curl android 编译,libcurl的android移植

对于libcurl大家在熟悉不过了,不做过多的介绍,

这是libcurl的官网

最近要在android工程中实现http等协议的下载,于是自然想到了libcurl,但是移植它到android还是走了一些弯路。

有很多网友尝试用NDK来编译libcurl,参考了很多资料,并且libcurl自身也有了Android.mk,但是我始终没有编译成功,无奈之下想到了

传统的交叉编译,结合先前从ndk中制作的独立的交叉编译工具链,终于成功了,方便可用。

1、NDK编译的方法可以参考:

2、交叉编译

准备好工具链arm-linux-androideabi-4.6.tar.bz2,例如将其解压在/home/work/目录下,在ubuntu机子上,将其加入环境变量,

$vim ~/.bashrc

在最后加上

#for android standalone toolchain

export PATH=/home/work/arm-linux-androideabi-4.6/bin:$PATH

$source ~/.bashrc

然后

$cd curl-7.28.1

$./configure --prefix=/usr/local/android --host=arm-linux-androideabi CC=arm-linux-androideabi-gcc CFLAGS='-Os' --enable-debug  --enable-optimize  --enable-static --disable-ftp --without-zlib  --disable-rtsp --disable-dict --disable-proxy --disable-telnet  --disable-tftp   --disable-pop3   --disable-imap   --disable-smtp   --disable-ipv6  --enable-http   -enable-crypto-auth  --without-gnutls --without-nss --without-ca-bundle

$make -j4

$sudo make install

就可以在/usr/local/android目录下生成libcurl相关的库了,然后可以将其放到你的android工程的jni目录下,以本地库的形式提供,

最好在jni的目录下建一个arm-linux-androideabi目录,将/usr/local/android目录下的内容全部拷贝过去,然后在arm-linux-androideabi

的同级目录下的Android.mk里面指定一下本地库的地址

LIVETVROOT := $(LOCAL_PATH)/liveTV

LOCALLIBROOT := $(LOCAL_PATH)/arm-linux-androideabi

然后使用时在相应的Android.mk中这样指定即可

LOCAL_C_INCLUDES += \

$(LOCALLIBROOT)/include

LOCAL_LDLIBS := -L$(LOCALLIBROOT)/lib \

-lcurl

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值