使用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版本。希望有人可以帮助我们。感谢。
答案 0 :(得分:3)
现在修复了mupdf的主分支:
最好只采取最新的主人(因为它有许多其他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代码生气,但希望这可能会帮助那些陷入编译代码的人。