【发布时间】:2014-01-31 20:16:52
【问题描述】:
我需要在 Fragment 中显示 PDF 文档,经过一些在线研究,我遇到了最受欢迎的开源阅读器 MuPDF 阅读器,我按照此链接 http://mupdf.blogspot.in/ 中的所有步骤操作。当我尝试按照上面的博客使用以下命令通过 Cyqwin 编译这个 MuPDF 库时
**Open Cygwin console,(just double click cygwin installation short-cut) and type following command and enter.
cd /cygdrive/<path to mupdf sorce folder/android ex. cd /cygdrive/c/mupdf-1.0- source/android
/cygdrive/<path to ndk installation>/ndk-build ex. /cygdrive/c/ndk/ndk-build**
我收到以下错误
**Compile thumb : mupdfcore <= draw_path.c
Compile thumb : mupdfcore <= draw_simple_scale.c
C:\cygwin64\tmp\ccEtywkX.s: Assembler messages:
C:\cygwin64\tmp\ccEtywkX.s:2248: Error: lo register required -- `str fp,[sp,#-4]!'
C:\cygwin64\tmp\ccEtywkX.s:2253: Error: lo register required -- `add fp,sp,#0'
C:\cygwin64\tmp\ccEtywkX.s:2257: Error: lo register required -- `str r0,[fp,#-16]'
C:\cygwin64\tmp\ccEtywkX.s:2258: Error: lo register required -- `str r1,[fp,#-20]'
C:\cygwin64\tmp\ccEtywkX.s:2259: Error: lo register required -- `str r2,[fp,#-24]'
C:\cygwin64\tmp\ccEtywkX.s:2260: Error: lo register required -- `str r3,[fp,#-28]'
C:\cygwin64\tmp\ccEtywkX.s:2262: Error: lo register required -- `ldr r3,[fp,#-24]'
C:\cygwin64\tmp\ccEtywkX.s:2263: Error: lo register required -- `str r3,[fp,#-8]'
C:\cygwin64\tmp\ccEtywkX.s:2267: Error: lo register required -- `ldr r3,[fp,#-16]'
C:\cygwin64\tmp\ccEtywkX.s:2269: Error: lo register required -- `str r2,[fp,#-16]'
C:\cygwin64\tmp\ccEtywkX.s:2270: Error: lo register required -- `ldr r2,[fp,#-20]'
C:\cygwin64\tmp\ccEtywkX.s:2272: Error: lo register required -- `str r1,[fp,#-20]'
C:\cygwin64\tmp\ccEtywkX.s:2276: Error: lo register required -- `ldr r3,[fp,#-8]'
C:\cygwin64\tmp\ccEtywkX.s:2278: Error: lo register required -- `str r3,[fp,#-8]'
C:\cygwin64\tmp\ccEtywkX.s:2281: Error: lo register required -- `ldr r3,[fp,#-8]'
C:\cygwin64\tmp\ccEtywkX.s:2285: Error: lo register required -- `ldr r3,[fp,#-28]'
C:\cygwin64\tmp\ccEtywkX.s:2286: Error: lo register required -- `ldr r2,[fp,#4]'
C:\cygwin64\tmp\ccEtywkX.s:2289: Error: lo register required -- `ldr r2,[fp,#-24]'
C:\cygwin64\tmp\ccEtywkX.s:2291: Error: lo register required -- `str r3,[fp,#-8]'
...
at the end this long operation terminates with the following ...
C:\cygwin64\tmp\ccEtywkX.s:4057: Error: lo register required -- `ldr r3,[fp,#-104]'
C:\cygwin64\tmp\ccEtywkX.s:4061: Error: lo register required -- `sub sp,fp,#8'
C:\cygwin64\tmp\ccEtywkX.s:4063: Error: lo register required -- `ldmfd sp!,{r4,fp,pc}'
/cygdrive/d/Sajay/Software/android-ndk-r9/build/core/build-binary.mk:345: recipe for target 'obj/local/armeabi/objs-debug/mupdfcore/__/__/draw/draw_simple_scale.o' failed
make: *** [obj/local/armeabi/objs-debug/mupdfcore/__/__/draw/draw_simple_scale.o] Error 1**
在网上尝试解决这个问题后,我遇到了一个与我的问题非常相似的 stackoverflow 问题
http://stackoverflow.com/questions/15050042/error-while-building-mupdf-1-1-on-mac
我下载了 NDK 8b 并尝试编译,但我仍然收到类似的短格式错误
Compile : mupdf <= mupdf.c
/bin/sh: /cygdrive/d/user/Software/android-ndk-r8b-windows/android-ndk-r8b/toolchains/arm-linux-androideabi-4.8/prebuilt/windows/bin/arm-linux-androideabi-gcc: No such file or directory
/cygdrive/d/user/Software/android-ndk-r8b-windows/android-ndk-r8b/build/core/build-binary.mk:252: recipe for target 'obj/local/armeabi/objs-debug/mupdf/mupdf.o' failed
make: *** [obj/local/armeabi/objs-debug/mupdf/mupdf.o] Error 127
任何帮助将不胜感激。
提前致谢。
【问题讨论】:
-
从错误信息看,你的工具链好像不包含 gcc ?
-
我的一位同事认为 NDK 安装失败,因为 gcc 编译器是 NDK 的一部分。
-
谢谢KenS,我解决了,我在用于NDK 9r 版本的Application.mk 文件中指定了错误的工具链版本。
-
@sajay 那么你做了什么来解决这个问题?我正在使用 NDK-r9c,它适用于 MuPDF 1.3,但是当我编译 MuPDF 1.1 时,出现了这个错误。
标签: android android-ndk mupdf