编译可在Android上运行的pcre库

编译可在Android上运行的pcre库

@(Android研究)[android|pcre]


[TOC]


前言

本文公开首发于阿里聚安全博客:https://jaq.alibaba.com/community/index.htm?spm=0.0.0.0.ycEUXK

pcre版本:8.38。

本文在Ubuntu 64位系统上对pcre项目进行交叉编译。

下文中的"NDK"若无特殊说明均指"Android NDK"。

步骤

1. 下载并安装Android NDK

下载并安装Android NDK的过程在这里不做介绍。

2. 下载pcre

到pcre的官网去下载这个库的源码。官网地址:http://pcre.org/

3. 设置NDK和SYSROOT环境变量

请参考编译可在Android上运行的glib库中相应的步骤。

注意:这里没有也不需要“创建NDK工具的软链接”这个步骤。

4. 运行configure

CPP=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-cpp CXXCPP=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-cpp CPPFLAGS="--sysroot $SYSROOT -I$NDK/sources/cxx-stl/gnu-libstdc++/4.9/include -I$NDK/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include -L$NDK/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/" ./configure --prefix="${SYSROOT}/usr" --host=arm-linux-androideabi CFLAGS="--sysroot $SYSROOT" CXXFLAGS="--sysroot $SYSROOT" LDFLAGS="-L$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9/ -L$NDK/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/ -L$SYSROOT/usr/lib/" LIBS="-lgnustl_static"

为了保证交叉编译成功,必须设置CPP、CXXCPP和CPPFLAGS这三个宏。下面是从configure.ac文件(该文件在pcre源码中)中提取出来的对这三个宏的解释:

  • CPP:C preprocessor .................. : ${CPP}
  • CXXCPP:C++ preprocessor ................ : ${CXXCPP}
  • CPPFLAGS:C preprocessor flags ............ : ${CPPFLAGS}

CPP和CXXCPP指向的预处理器均来自NDK。

CPPFLAGS除了设置了--sysroot外,还设置了头文件的搜索路径。

LDFLAGS设置了库搜索路径,LIBS设置了依赖库,这两个宏也必须被设置。

对./configure命令中的其他部分解析请参考编译可在Android上运行的libiconv库中的相应步骤。

5. 编译和安装

请参考编译可在Android上运行的libiconv库中的相应步骤。

转载于:https://my.oschina.net/ibuwai/blog/648195

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值