2012-01-17 49 views
4

我想编译这个项目https://github.com/lilac/Android-ImageMagick。 为了生成android-magick.so我需要在我的系统上编译它。 我修改了重建脚本,并成为以下错误。编译imagemagick为Android

Clean: MagickCore [armeabi] 
Clean: android-magick [armeabi] 
Clean: coders [armeabi] 
Clean: filters [armeabi] 
Clean: jpeg [armeabi] 
Clean: stdc++ [armeabi] 
Clean: tiff-shared [armeabi] 
Clean: tiff-static [armeabi] 
Clean: tiffinfo [armeabi] 
Gdbserver  : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver 
Gdbsetup  : libs/armeabi/gdb.setup 
Compile thumb : android-magick <= jmagick.c 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:7:24: error: magick/api.h: No such file or directory 
In file included from /home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:8: 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.h:4:26: error: magick/image.h: No such file or directory 
In file included from /home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:8: 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.h:26: error: expected ';', ',' or ')' before '*' token 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.h:131: error: expected declaration specifiers or '...' before 'RectangleInfo' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.h:151: error: expected declaration specifiers or '...' before 'PixelPacket' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.h:165: error: expected declaration specifiers or '...' before 'Image' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.h:198: error: expected declaration specifiers or '...' before 'ProfileInfo' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.h:212: error: expected declaration specifiers or '...' before 'ProfileInfo' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:38: error: expected ';', ',' or ')' before '*' token 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c: In function 'getHandle': 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:150: warning: cast to pointer from integer of different size 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c: In function 'setHandle': 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:204: warning: cast from pointer to integer of different size 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c: At top level: 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:586: error: expected declaration specifiers or '...' before 'RectangleInfo' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c: In function 'getRectangle': 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:595: error: 'iRect' undeclared (first use in this function) 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:595: error: (Each undeclared identifier is reported only once 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:595: error: for each function it appears in.) 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c: At top level: 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:622: error: expected declaration specifiers or '...' before 'PixelPacket' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c: In function 'getPixelPacket': 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:637: error: 'iPixelPacket' undeclared (first use in this function) 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:637: error: 'Quantum' undeclared (first use in this function) 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:637: error: expected ';' before 'red' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:638: error: expected ';' before 'green' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:639: error: expected ';' before 'blue' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:640: error: expected ';' before 'opacity' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c: At top level: 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:662: error: expected declaration specifiers or '...' before 'Image' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c: In function 'newImageObject': 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:684: error: 'image' undeclared (first use in this function) 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c: At top level: 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:733: error: expected declaration specifiers or '...' before 'ProfileInfo' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c: In function 'setProfileInfo': 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:746: error: 'profileInfo' undeclared (first use in this function) 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c: At top level: 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:768: error: expected declaration specifiers or '...' before 'ProfileInfo' 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c: In function 'getProfileInfo': 
/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/jni/jmagick.c:795: error: 'profileInfo' undeclared (first use in this function) 
make: *** [/home/vita/projects/lilac-Android-ImageMagick-5f1c8b5/obj/local/armeabi/objs-debug/android-magick/jmagick.o] Fehler 1 

有人可以给我一些提示吗?

+0

我没有找到解决方案,但如果有人真的需要编译它。在这里你可以找到编译版本的libandroid-magick.so。https:// github.com/lilac/Android-ImageMagick/blob/d28222850a95cac27477bafbc6c1b543ff6fd9cc/libs/armeabi/libandroid-magick.so。这是运行该示例所必需的。 – ovonel

+1

看起来像你的头文件丢失 - magick/api.h等。到哪里去找他们,仔细检查所有编译和项目文件的位置,看起来像期待它们在本地被称为“magick”。 –

回答

2

您必须手动将包含行中的所有路径更改为绝对路径。我有同样的问题,并修复它。

因此,例如在jmagick.c,你就会有一条线在那里说:
include <magick/api.h>include "magick/api.h"
你必须改变这哪里的api.h文件的绝对路径。我的是在C:/SomeFolders/Android-ImageMagick-master/Android-ImageMagick-master/ndk-modules/ImageMagick-6.7.3-0/magick所以我改变了我的include指令到
include <C:/SomeFolders/Android-ImageMagick-master/Android-ImageMagick-master/ndk-modules/ImageMagick-6.7.3-0/magick/api.h>
你将有在给你这个“没有这样的文件或目录”错误的所有文件中都这样做。

一旦我做了这些,但它要求一个ft2build.h头文件,它实际上并不在我的磁盘上。所以我不知道该怎么做:(