linux下静态编译mupdf,NDK编译mupdf1.1小记
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小记相关推荐
- Linux下静态编译的一个TIP
Linux下静态编译的一个TIP | 素包子 Linux下静态编译的一个TIP 2010年3月28日 baoz 阅读评论 linux下静态编译好处很多,一来是可以跨发行版(debian redhat ...
- Linux下c和cuda混合编译,并生成动态链接库.so和使用
Linux下c和cuda混合编译,并生成动态链接库.so和使用 2016-08-27 14:27 98人阅读 评论(0) 收藏 举报 分类: Linux 版权声明:本文为博主原创文章,未经博主允许不得 ...
- linux ant 编译,【Jenkins】linux下Jenkins集成ant进行编译并发送结果
三个文章吧: 1 如何使用ant编译执行jmeter测试用例,并生成html报告 2 如何在Linux下搭建jenkins环境. 3 如何在Linux下搭建的jenkins中执行ant构建运行,并发送 ...
- 【Linux】Linux下静态库(.a)和动态库(.so)的制作和使用
如有错误,欢迎大家指正,感谢! 目录 一.程序工作过程简单介绍 1. 安装GCC 2. 源程序工作流程 3. 使用示例 4. gcc常用的编译参数选项 二.静态库的制作及使用 1. 库是 ...
- Linux下静态路由配置命令
linux下静态路由修改命令 方法一: 添加路由 route add -net 192.168.1.0/24 gw 192.168.1.1 route add -host 192.168.1.8 de ...
- linux下静态编译mupdf,在Qt中调用Mupdf库进行pdf显示
2018.5.10 更新内存对齐说明 感谢知乎网友@孤独子狮指出QImage处需要考虑内存对齐的问题.因为本人缺乏跨平台.图形库开发经验,所以在调试成功后就没有深入探究. 主要修改了QImage的构造 ...
- Linux下静态库和动态库的编译连接
http://blog.sina.com.cn/s/blog_4090ba590100t3nu.html .a文件 gcc -c test.c ar rc libtest.a test.o ran ...
- linux运行c语言实验总结,实验三:LINUX 下C语言使用、编译与调试实验
一.目的: 1. 练习并掌握Linux提供的vi编辑器来编译C程序 2. 学会利用gcc.gdb编译.调试C程序 3. 学会使用make工具 二.内容 1. 编写C语言程序,用gcc编译并观察编译后的 ...
- 在Linux下使用树莓派交叉编译工具编译opencv库并进行移植
一.交叉编译opencv 继上一篇博客:"在Linux下配置opencv"之后,我以为直接将编译命令:g++ `pkg-config --cflags opencv` -o Tes ...
最新文章
- PHP严重致命错误处理:php Fatal error: Cannot redeclare clas
- iOS安全之ipa 包重签名的3种方法
- 58.最全正则表达式教程,最好正则表达式教程
- 阿里云物联网平台python开发手册_阿里云物联网平台体验(树莓派+Python篇)
- boost::math模块使用逆高斯(或逆正态)分布的示例
- C++模拟实现Objective-C协议和代理模式
- SAP Spartacus category navigation页面鼠标进入事件的处理
- 股上涨和下跌天数比_面对下跌,如何信心十足地逢低买入?
- 日常计算机操作知识试题,关于2017计算机一级考试试题操作题
- linux7无法进入系统,记录一次断电导致centos7.4系统不能正常进入的解决方案
- 欧姆龙编程软件(CXONE)使用教程
- TCP-IP协议详解(2) 以太网与WiFi协议
- FIR滤波器之Hilbert变换
- 简单几招破解Windows管理员密码
- 物联网云平台的远程管理
- U大师U盘装系统——启动U盘制作(V1.2.0版)
- 【测试】如何测试微信发红包功能
- 腾讯汤道生:未来将投入100亿资源为中小企业提供SaaS产品及方案
- 基于JSP的犯罪数据可视化系统
- 新零售门店是什么 新零售门店如何建设 新零售门店案例