安卓下编译pcre
来源:互联网 发布:中国手机网民最新数据 编辑:程序博客网 时间:2024/05/30 20:07
在C或C++代码中常遇到从一堆数据中提取某个字段,苦于C或C++没有标准的正则表达式库,只好动手编译一个。看了网上关于几种正则表达式库的描述,凭感觉选了pcre。
下面开始动手编译。
1、首先从网站上下载了7.8版本,网址是http://sourceforge.net/projects/pcre/files/pcre/7.8/
下载完成后将压缩包解压。
2、在解压后的根目录里面找到NON-UNIX-USE这个文件,里面有关于非unix系统或者不支持confige和make工具的情况下,如何编译pcre的方法
3、按照NON-UNIX-USE里面的介绍,首先把config.h.generic 重命名为 config.h, 把pcre.h.generic 重命名为 pcre.h, pcre_chartables.c.dist 重命名为 pcre_chartables.c
4、接下来创建test目录,在test目录下面创建jni目录,在jni目录下创建pcre-7.8目录。把以下文件
config.h
pcre.h
pcre_internal.h
ucp.h
pcre_chartables.c
pcre_compile.c
pcre_config.c
pcre_dfa_exec.c
pcre_exec.c
pcre_fullinfo.c
pcre_get.c
pcre_globals.c
pcre_info.c
pcre_maketables.c
pcre_newline.c
pcre_ord2utf8.c
pcre_refcount.c
pcre_study.c
pcre_tables.c
pcre_try_flipped.c
pcre_ucd.c
pcre_valid_utf8.c
pcre_version.c
pcre_xclass.c
都拷贝到pcre-7.8目录下,然后在jni目录下创建Android.mk,该文件内容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
#获取所有C文件
LOCAL_SRC_FILES:=$(wildcard $(LOCAL_PATH)/pcre-7.8/*.c)
#将文件路径前面的jni/去掉
LOCAL_SRC_FILES:=$(patsubst jni/%,%, $(LOCAL_SRC_FILES))
LOCAL_CFLAGS := -Dyylval=pcre_lval -DHAVE_CONFIG_H -D_U_="__attribute__((unused))"
LOCAL_CFLAGS += -Ipcre-7.8
LOCAL_MODULE:= pcre
include $(BUILD_SHARED_LIBRARY)
以上就算完成了。然后执行ndk命令(我的是D:\tools\android\android-ndk-r8d\ndk-build),就可以完成编译了,最终生成libpcre.so动态库
下面是编译windows版本
1.把上述所有头文件和c文件加入到项目中
2.增加工程预编译宏 HAVE_CONFIG_H, 同时不使用预编译头 Not Using Precompiled Headers
接下来就可以直接编译通过
windows下作为第三方库加入到自己的项目,会产生生成的exe文件启动不起来的问题。可以把pcre的源码直接加入到自己的项目,而不是以第三方库的方式加入,这样最终生成的可执行程序就可以运行了
- 安卓下编译pcre
- PCRE++编译
- nginx编译缺少pcre
- Windows下编译pcre
- windows平台编译pcre
- 交叉编译pcre、sqlite3
- 编译安装pcre
- vs2013编译 pcre
- windows平台手动编译pcre
- pcre++ windows版本编译过程
- linux 手工编译pcre-8.0
- 编译安装PCRE时出错
- pcre-8.36 编译错误 解决
- 编译安装Nginx和pcre
- PCRE在windows+VS2013编译
- Windows下VS2010编译PCRE
- pcre
- pcre
- 排序算法之插入排序和交换排序
- 强一致性、弱一致性、最终一致性
- C++ 定义和调用函数
- 再学类图关系
- Web服务器控件
- 安卓下编译pcre
- 【软考教程】计算机系统知识
- 创业公司有哪些常见的散伙原因?
- 读写TXT或者ini文件
- HDU 5492(Find a path-最小方差路径)
- HDU 5465 Clarke and puzzle (二维树状数组维护区间异或)
- Effective Objective-C
- Effective Objective-C(二)
- Android 线程 thread 两种实现方法!