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.

linux下静态编译mupdf,NDK编译mupdf1.1小记相关推荐

  1. Linux下静态编译的一个TIP

    Linux下静态编译的一个TIP | 素包子 Linux下静态编译的一个TIP 2010年3月28日 baoz 阅读评论 linux下静态编译好处很多,一来是可以跨发行版(debian redhat ...

  2. Linux下c和cuda混合编译,并生成动态链接库.so和使用

    Linux下c和cuda混合编译,并生成动态链接库.so和使用 2016-08-27 14:27 98人阅读 评论(0) 收藏 举报 分类: Linux 版权声明:本文为博主原创文章,未经博主允许不得 ...

  3. linux ant 编译,【Jenkins】linux下Jenkins集成ant进行编译并发送结果

    三个文章吧: 1 如何使用ant编译执行jmeter测试用例,并生成html报告 2 如何在Linux下搭建jenkins环境. 3 如何在Linux下搭建的jenkins中执行ant构建运行,并发送 ...

  4. 【Linux】Linux下静态库(.a)和动态库(.so)的制作和使用

    如有错误,欢迎大家指正,感谢! ​​​​​​​目录 一.程序工作过程简单介绍 1. 安装GCC 2. 源程序工作流程 3. 使用示例 4. gcc常用的编译参数选项 二.静态库的制作及使用 1. 库是 ...

  5. Linux下静态路由配置命令

    linux下静态路由修改命令 方法一: 添加路由 route add -net 192.168.1.0/24 gw 192.168.1.1 route add -host 192.168.1.8 de ...

  6. linux下静态编译mupdf,在Qt中调用Mupdf库进行pdf显示

    2018.5.10 更新内存对齐说明 感谢知乎网友@孤独子狮指出QImage处需要考虑内存对齐的问题.因为本人缺乏跨平台.图形库开发经验,所以在调试成功后就没有深入探究. 主要修改了QImage的构造 ...

  7. Linux下静态库和动态库的编译连接

    http://blog.sina.com.cn/s/blog_4090ba590100t3nu.html .a文件 gcc -c test.c  ar rc libtest.a test.o  ran ...

  8. linux运行c语言实验总结,实验三:LINUX 下C语言使用、编译与调试实验

    一.目的: 1. 练习并掌握Linux提供的vi编辑器来编译C程序 2. 学会利用gcc.gdb编译.调试C程序 3. 学会使用make工具 二.内容 1. 编写C语言程序,用gcc编译并观察编译后的 ...

  9. 在Linux下使用树莓派交叉编译工具编译opencv库并进行移植

    一.交叉编译opencv 继上一篇博客:"在Linux下配置opencv"之后,我以为直接将编译命令:g++ `pkg-config --cflags opencv` -o Tes ...

最新文章

  1. PHP严重致命错误处理:php Fatal error: Cannot redeclare clas
  2. iOS安全之ipa 包重签名的3种方法
  3. 58.最全正则表达式教程,最好正则表达式教程
  4. 阿里云物联网平台python开发手册_阿里云物联网平台体验(树莓派+Python篇)
  5. boost::math模块使用逆高斯(或逆正态)分布的示例
  6. C++模拟实现Objective-C协议和代理模式
  7. SAP Spartacus category navigation页面鼠标进入事件的处理
  8. 股上涨和下跌天数比_面对下跌,如何信心十足地逢低买入?
  9. 日常计算机操作知识试题,关于2017计算机一级考试试题操作题
  10. linux7无法进入系统,记录一次断电导致centos7.4系统不能正常进入的解决方案
  11. 欧姆龙编程软件(CXONE)使用教程
  12. TCP-IP协议详解(2) 以太网与WiFi协议
  13. FIR滤波器之Hilbert变换
  14. 简单几招破解Windows管理员密码
  15. 物联网云平台的远程管理
  16. U大师U盘装系统——启动U盘制作(V1.2.0版)
  17. 【测试】如何测试微信发红包功能
  18. 腾讯汤道生:未来将投入100亿资源为中小企业提供SaaS产品及方案
  19. 基于JSP的犯罪数据可视化系统
  20. 新零售门店是什么 新零售门店如何建设 新零售门店案例

热门文章

  1. 四川大学计算机学院学科评估,四川大学第四轮学科评估结果:58个学科上榜,其中A类学科16个...
  2. 如何靠网络快速打造品牌
  3. 小肚皮最新版本_小肚皮下载_小肚皮APP手机最新版安装 - 风云下载
  4. 干货丨产品的可行性分析要从哪几个方面入手?
  5. FPGA自动售货机设计
  6. 视通科技科技法庭解决方案
  7. 数据导入与预处理——数据导入导出实验一
  8. Linux部分实用指令
  9. IEEE文献免费下载
  10. 在sql强制指定索引查询