使用Android NDK编译MuPDF 1.5时出错

时间:2014-06-13 16:07:56

标签: android pdf android-ndk mupdf

使用Android NDK编译新版MuPDF 1.5时遇到问题。 由于旧版本1.4上有很多bug问题,我决定升级到1.5版本,但不幸的是我收到了编译错误消息,如下所述:

Android NDK:警告:jni / Android.mk:mupdfcore:静态库总是忽略LOCAL_LDLIBS [armeabi-v7a]编译拇指:mupdfcore< = pdf-op-run.c jni /../../../ source / pdf / pdf-op-run.c:在函数'run_xobject'中: jni /../../../ source / pdf / pdf-op-run.c:1732:3:错误:格式不是字符串文字而且没有格式参数[-Werror = format-security] cc1.exe:某些警告被视为错误

/cygdrive/c/android-ndk-r9d/build/core/build-binary.mk:391:目标'obj / local / armeabi-v7a / objs / mupdfcore / / 的食谱//source/pdf/pdf-op-run.o'失败了 make: * [obj / local / armeabi-v7a / objs / mupdfcore / / / /source/pdf/pdf-op-run.o]错误1

他们刚刚在3天前发布了这个新版本1.5。有没有人面临同样的问题?我正在使用cygwin“生成make”并使用平台/ android上的ndk编译它。编译过去适用于版本1.4但不适用于1.5版本。希望有人可以帮助我们。感谢。

2 个答案:

答案 0 :(得分:3)

现在修复了mupdf的主分支:

http://git.ghostscript.com/?p=mupdf.git;a=blobdiff;f=source/pdf/pdf-op-run.c;h=da881b2ef56d5c1cd9ace8a3c86f5a523bc94853;hp=2bea94b791ed341063f987171b611e377cf8ffa3;hb=77315e7139a9b412ab53a7d00cd0b019bd44b497;hpb=b2f096de23e5341fbbcd7c290f3a144423741906

最好只采取最新的主人(因为它有许多其他Android错误修复),但如果你需要它,这是补丁:

diff --git a/source/pdf/pdf-op-run.c b/source/pdf/pdf-op-run.c
index 2bea94b..da881b2 100644 (file)
--- a/source/pdf/pdf-op-run.c
+++ b/source/pdf/pdf-op-run.c
@@ -1729,7 +1729,7 @@ run_xobject(pdf_csi *csi, void *state, pdf_obj *resources, pdf_xobject *xobj, co

        /* Rethrow postponed errors */
        if (errmess[0])
-               fz_throw(ctx, FZ_ERROR_GENERIC, errmess);
+               fz_throw(ctx, FZ_ERROR_GENERIC, "%s", errmess);
 }

 static void pdf_run_BDC(pdf_csi *csi, void *state)

答案 1 :(得分:1)

没关系。我已经解决了编译问题。只需将%s作为第1732行的参数添加到pdf-op-run.c中,如下所示:

fz_throw(ctx,FZ_ERROR_GENERIC,errmess,"%s");

我的c代码生气,但希望这可能会帮助那些陷入编译代码的人。