MuPDF是一个轻量级的简易版PDF阅读器,它的功能简单,启动快速,渲染效果不错。MuPDF是免费软件,并提供了Android下的源码。

下面就是mupdf最新版1.1的编译过程。

确保已经配置好Android的NDK及C的编译环境。

1.官网下载源码和依赖库

http://code.google.com/p/mupdf/downloads/list

就是图中的source和thirdparty,点击下载。

2.解压

分别解压,然后将thirdparty解压后的目录直接拷贝到mupdf-1.1-source.tar.gz解压后的目录mupdf-1.1-source中。

注意,不要修改任何东西。

3.编译中间文件

终端进入mupdf-1.1-source,直接make

会报一些警告,但不用理会。最终会生成generated文件夹:

Opensuse 中会报fatal error: X11/extensions/XShm.h: No such file or directory

在yast->software manager中找到libxext-dev安装好就可以了。

3.用ndk编译

终端进入android目录执行ndk的编译命令

$NDK_ROOT/ndk-build 

报错!

SharedLibrary : libmupdf.so
/usr/local/lib/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/libmupdfcore.a(pdf_fontfile.o)(.text.pdf_lookup_builtin_font+0x18): unresolvable R_ARM_THM_CALL relocation against symbol `strcmp'
/usr/local/lib/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/libmupdf.so] Error 1

google一番得知是NDK的版本问题。

解决方法:

把android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/arm-linux-androideabi/bin/目录下的ld文件存知别的地方(剪切走),然后创建一个软链接:

 sudo ln -s ld.gold ld

这回就可以编译过了!

在libs/armeabi-v7a中就有生成好的.so.

点我直接下载

转载于:https://blog.51cto.com/8672742/1368323

NDK编译mupdf1.1小记相关推荐

  1. linux下静态编译mupdf,NDK编译mupdf1.1小记

    MuPDF是一个轻量级的简易版PDF阅读器,它的功能简单,启动快速,渲染效果不错.MuPDF是免费软件,并提供了Android下的源码. 下面就是mupdf最新版1.1的编译过程. 确保已经配置好An ...

  2. android2.2编译,Android NDK编译Box2D_V2.2

    如果大家有留意的话,就知道现在很流行的 愤怒的小鸟 的物理引擎是使用了Box2D,那么如何将这好东西移植到Android上呢?在网上找了一遍,发现资料还是少得可怜,于是自己研究研究一下,遇到问题就go ...

  3. 【Android开发】:在任意目录执行NDK编译

    2019独角兽企业重金招聘Python工程师标准>>> 文以简单的例子讲述如何在任意目录把自己写的C代码使用NDK提供的交叉编译该工具来编译成Android可使用的静态库/动态库. ...

  4. Android开发实践:在任意目录执行NDK编译

    本文暂时不讲述如何用NDK编译第三方开源代码库,而是先以简单的例子讲述如何在任意目录把自己写的C代码编译成Android可使用的静态库/动态库. 1. 准备环境 首先,你得安装了Android的NDK ...

  5. win10系统 ubuntu子系统 进行ndk编译笔记

    报错1:error adding symbols: file in wrong format collect2: error: ld returned 1 exit status win10系统 ub ...

  6. NDK 编译和使用静态库、动态库

    NDK 编译和使用静态库.动态库 情况一:编译静态库 情况二:编译动态库 情况三:编译动态库+静态库 情况四:已有第三方静态库(动态库),编译静态库(动态库) 默认所有代码和文件在$project/j ...

  7. Android Studio NDK 代码 Source Insight调试 (NDK 目前开发方案 | NDK 编译 | 导入 so 库 | 项目编码转换)

    作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/52088039 最近在移植一个 JNI 项目, 比较纠结, A ...

  8. Android NDK编译中在libs\armeabi中加入第三方so库文件的方法

    Android NDK编译中在libs\armeabi中加入第三方so库文件的方法 假设要加入库文件的名字为libffmpeg.so文件 1.要在project\jni目录下新建一目录prebuilt ...

  9. 使用NDK编译VTK

    VTK提供了对安卓的CMAKE编译支持,其介绍文件在源代码根目录下的 "/cmake/android.toolchain.cmake". 对Wndows的编译自持描述为: 注意:但 ...

  10. NDK编译错误expected specifier-qualifier-list before...

    基于cocos2d-x在win7下开发android程序,一般都会选择先在win32下调试,等最后再在eclipse环境下安装测试到真机上.期间,要使用到cocos2d-x提供的一些简化方案进行NDK ...

最新文章

  1. Mysql 主从复制(AB复制)
  2. IE和DOM事件流、普通事件和绑定事件的区别
  3. Android SDCard操作(文件读写,容量计算)
  4. java day10(续day9)
  5. C语言实现Graph图的算法(附完整源码)
  6. sqoop导入-hdfs
  7. 计算机接口控制采集时序图,自动站实时数据质量控制
  8. Qt学习笔记-Qt5程序开机自启动(windows)
  9. 宕机日志怎么看 thread detail_如何快速过滤出一次请求的所有日志?
  10. loadrunner四大部分
  11. 机会是留给有准备的人
  12. 浅析JDK,JRE,JVM的区别
  13. 分布式文件系统HDFS原理篇
  14. oracle sql优化的几种方法
  15. Linux查看网卡是千兆还是万兆网卡
  16. ARM CMSIS 4.5.0
  17. python 矩阵特征值分解_特征值分解和奇异值分解
  18. mysql导入的数据放在那个文件夹下_mysql数据库文件导入
  19. matlab求基音频率,语音中提取基音频率matlab程序.doc
  20. parameterType和@Param注解用法

热门文章

  1. 昆明钟英高中2021年高考成绩查询,昆明官渡钟英中学2021年排名
  2. 华为鸿蒙重磅更新,华为重磅官宣!鸿蒙系统升级机型遭曝光:多达55款产品支持升级...
  3. oracle12c bug,12c expdp ORA-31623 -又遇到BUG
  4. 学生选课系统代码--分析2需求分析
  5. pythonATM,购物车项目实战_补充4-db模块
  6. python中‘configparser’的使用方法---ini文件读取方法
  7. docker基础4--docker的命令
  8. python怎么看待_如何看待将Python作为少儿编程的基础语言?
  9. 视觉中国被连夜约谈后再次致歉;京东高管:下一步将向总监“开刀”;华为P30价格公布 | 雷锋早报...
  10. Mongodb 定时备份和恢复 1