Ubuntu10.04 下Mupdf编译
项目的需要,最近在看Mupdf,Mupdf是一款强大的开源PDF解析库,主页:http://www.mupdf.com/
由于要在android中使用到Mupdf,Mupdf是用c\c++语言编写的,所以我们需要使用NDK将其编译为库文件使用
NDK下载地址:http://developer.android.com/sdk/ndk/index.html
NDK的安装很简单,只要设置一下环境变量就可以了
1.NDK环境变量设置,打开.bashrc文件
#set the ndk environment export ANDROID_NDK=/home/sanjinxiong/NDK/android-ndk-r5c export PATH=$ANDROID_NDK:$PATH
2.下载Mupdf及相关的第三方组件
mupdf-0.8.15-source(http://www.mupdf.com/download/mupdf-0.8.15-source.tar.gz)
mupdf-0.8.15-pregen(http://www.mupdf.com/download/mupdf-0.8.15-pregen.zip)
mupdf-thirdparty(http://www.mupdf.com/download/mupdf-thirdparty.zip)
3.分别解压缩上面三个压缩包,并且放在同一级目录下
4.去掉thirdparty目录中的所有文件夹的版本信息,将 freetype-2.4.4 jbig2dec jpeg-8c openjpeg-1.4 zlib-1.2.5 改成 freetype jbig2dec jpeg openjpeg zlib(因为jni目录下的core.mk文件中是没有版本信息的)
5.依次执行 thirdparty/freetype thirdparty/jepg thirdparty/openjpeg thirdparty/zlib 目录下的configure
6.找到thirdparty/jbig2dec/os_types.h,用文本编辑器打开,注释掉
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef signed char int8_t;
typedef signed short int16_t;
typedef signed int int32_t;
7.用文本编辑器打开thirdparty/openjpeg/libopenjpeg/openjpeg.c将 #include "opj_config.h" 改为 #include "../opj_config.h"
8.用文本编辑器打开android/jni/Core.mk,添加 $(MY_ROOT)/fitz/crypt_sha2.c / (包含反斜线)
9.进入android目录用ndk-build命令,编译,如果没有错误,就会在android目录下生成libs目录,里面就包含了我们需要的库文件
这样就完成了Mupdf的编译,导入eclipse,并将PDF文件放到程序中指定的模拟器路径下,它自带的Demo程序就可以将其打开