日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

正则表达式pcre在Android下的移植

發(fā)布時(shí)間:2023/12/20 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式pcre在Android下的移植 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

因?yàn)轫?xiàng)目需要在android的NDK開發(fā)中使用pcre正則表達(dá)式庫,而android系統(tǒng)中并沒有自帶該庫,所以就得另外移植了, 下面是移植的詳細(xì)步驟:

?

1. 下載pcre源碼,可以到http://sourceforge.net/projects/pcre/下載源碼。
我這里使用的是pcre-7.8.tar.gz 。


2. 將pcre-7.8 的源碼拷貝至android源碼樹下的external/pcre目錄下。


3. 將下面的Android.mk文件拷貝到external/pcre目錄下。

Android.mk:

# # Android makefile for libpcre # # This makefile generates libpcre.a, pcregrep and pcre.h ONLY. # It should be amended to build libpcreposix.a, libpcrecpp.a # and tests.LOCAL_PATH := $(call my-dir)### ### Build libpcre.a and pcre.h ###include $(CLEAR_VARS)#step 1: # to generate the files config.h pcre.h pcre_chartables.c # GEN := $(LOCAL_PATH)/config.h $(GEN): $(LOCAL_PATH)/config.h.generic$(hide) cp $(LOCAL_PATH)/config.h.generic $@ LOCAL_GENERATED_SOURCES += $(GEN)GEN := $(LOCAL_PATH)/pcre.h $(GEN): $(LOCAL_PATH)/pcre.h.generic$(hide) cp $(LOCAL_PATH)/pcre.h.generic $@ LOCAL_GENERATED_SOURCES += $(GEN)GEN := $(LOCAL_PATH)/pcre_chartables.c $(GEN): $(LOCAL_PATH)/pcre_chartables.c.dist$(hide) cp $(LOCAL_PATH)/pcre_chartables.c.dist $@ LOCAL_GENERATED_SOURCES += $(GEN)#step 2: #clear the vars generated by the step 1 # include $(CLEAR_VARS)LOCAL_SRC_FILES := \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_internal.h \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_chartables.c \ucp.h \pcre.h \config.h#copy the pcre.h to out/target/product/generic/obj/include/libpcre # LOCAL_COPY_HEADERS := pcre.h LOCAL_COPY_HEADERS_TO := libpcreLOCAL_CFLAGS += -O3 -I. -DHAVE_CONFIG_HLOCAL_MODULE := libpcre LOCAL_MODULE_CLASS := STATIC_LIBRARIES LOCAL_PRELINK_MODULE := falseinclude $(BUILD_STATIC_LIBRARY)### ### Build pcregrep ###include $(CLEAR_VARS)LOCAL_MODULE := pcregrep LOCAL_SRC_FILES := pcregrep.c LOCAL_CFLAGS += -O3 -I. -DHAVE_CONFIG_H LOCAL_STATIC_LIBRARIES := libpcreinclude $(BUILD_EXECUTABLE)

4. cd 到 android的源碼樹的根目錄下,輸入命令:

. build/envsetup.sh

chooseproduct
mmm external/pcre
從下面的log可以看到生成了libpcre.a庫:

make: Entering directory `/home/braincol/workspace/android/android_build/android_sdk_froyo'
Header: out/target/product/generic/obj/include/libpcre/pcre.h
target thumb C: pcregrep <= external/pcre/pcregrep.c
target thumb C: libpcre <= external/pcre/pcre_compile.c
target thumb C: libpcre <= external/pcre/pcre_config.c
target thumb C: libpcre <= external/pcre/pcre_dfa_exec.c
target thumb C: libpcre <= external/pcre/pcre_exec.c
target thumb C: libpcre <= external/pcre/pcre_fullinfo.c
target thumb C: libpcre <= external/pcre/pcre_get.c
target thumb C: libpcre <= external/pcre/pcre_globals.c
target thumb C: libpcre <= external/pcre/pcre_info.c
target thumb C: libpcre <= external/pcre/pcre_maketables.c
target thumb C: libpcre <= external/pcre/pcre_newline.c
target thumb C: libpcre <= external/pcre/pcre_ord2utf8.c
target thumb C: libpcre <= external/pcre/pcre_refcount.c
target thumb C: libpcre <= external/pcre/pcre_study.c
target thumb C: libpcre <= external/pcre/pcre_tables.c
target thumb C: libpcre <= external/pcre/pcre_try_flipped.c
target thumb C: libpcre <= external/pcre/pcre_ucd.c
target thumb C: libpcre <= external/pcre/pcre_valid_utf8.c
target thumb C: libpcre <= external/pcre/pcre_version.c
target thumb C: libpcre <= external/pcre/pcre_xclass.c
target thumb C: libpcre <= external/pcre/pcre_chartables.c
target StaticLib: libpcre (out/target/product/generic/obj/STATIC_LIBRARIES/libpcre_intermediates/libpcre.a)
target Executable: pcregrep (out/target/product/generic/obj/EXECUTABLES/pcregrep_intermediates/LINKED/pcregrep)
target Non-prelinked: pcregrep (out/target/product/generic/symbols/system/bin/pcregrep)
target Strip: pcregrep (out/target/product/generic/obj/EXECUTABLES/pcregrep_intermediates/pcregrep)
Install: out/target/product/generic/system/bin/pcregrep
make: Leaving directory `/home/braincol/workspace/android/android_build/android_sdk_froyo'

?

然后只要把libpcre.a庫和頭文件pcre.h拷貝到你的android應(yīng)用工程中,然后就可以在ndk中使用這個(gè)pcre庫了。

轉(zhuǎn)載于:https://www.cnblogs.com/hibraincol/archive/2011/10/15/2213714.html

總結(jié)

以上是生活随笔為你收集整理的正则表达式pcre在Android下的移植的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。