为Android NDK构建Pango Cairo

时间:2012-08-01 15:16:57

标签: android android-ndk cairo pango pangocairo

我发现有人为Pango Cairo移植了Android NDK(blog postsource code)。但是我在编译他的示例项目时没有成功。有没有人设法这样做,可以告诉我我做错了什么?

这是我到目前为止所尝试的:

  • git clone --recursive http://dev.laptop.org/git/users/cscott/android-libs/
  • git由于某种原因无法找到pixman,所以 git clone http://cgit.freedesktop.org/pixman/ ,并转移到 android-libs / jni / pixman
  • android-libs / jni / 的内容复制到 android-libs / examples / java-bitmap / jni (不确定要保留哪个Android.mk?)< / LI>
  • java-bitmap / jni / Makefile.devel 重命名为 Makefile
  • 编辑 java-bitmap / jni / Makefile 如下:NDK = / cygdrive / f / android-ndk-r8b TOOLCHAIN = $(NDK)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin
  • 尝试在 java-bitmap / jni
  • 中运行 make

我收到以下错误:

checking for arm-linux-eabi-gcc... arm-linux-androideabi-gcc --sysroot /cygdrive/f/android-ndk-r8b/platforms/android-9/arch-arm -fpic -ffunction-sections -funwind-tables -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__  -mfpu=vfp -Wno-psabi -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID -Wa,--noexecstack -g -isystem /cygdrive/f/workspace/java-bitmap/jni/sysroot/include
checking whether the C compiler works... no
configure: error: in `/cygdrive/f/workspace/java-bitmap/jni/pixman':
configure: error: C compiler cannot create executables
See `config.log' for more details
Makefile:133: recipe for target `pixman/config.h' failed
make: *** [pixman/config.h] Error 77

这是config.h的片段

configure:3460: checking whether the C compiler works
configure:3482: arm-linux-androideabi-gcc --sysroot /cygdrive/f/android-ndk-r8b/platforms/android-9/arch-arm -fpic -ffunction-sections -funwind-tables -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__  -mfpu=vfp -Wno-psabi -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID -Wa,--noexecstack -g -isystem /cygdrive/f/workspace/java-bitmap/jni/sysroot/include -nostdlib -DPIXMAN_NO_TLS -DWCHAR_MIN=INT_MIN -DWCHAR_MAX=INT_MAX -I/cygdrive/f/workspace/java-bitmap/jni/pixman-extra -I/cygdrive/f/workspace/java-bitmap/jni/sysroot/include -include pixman-elf-fix.h  -Wl,--fix-cortex-a8  -Wl,--no-undefined -Wl,-z,noexecstack -lc -lgcc -L/cygdrive/f/workspace/java-bitmap/jni/sysroot/lib conftest.c  >&5
cc1.exe: error: pixman-elf-fix.h: No such file or directory
configure:3486: $? = 1
configure:3524: result: no
configure: failed program was:

..

configure:3529: error: in `/cygdrive/f/workspace/java-bitmap/jni/pixman':
configure:3531: error: C compiler cannot create executables
See `config.log' for more details

1 个答案:

答案 0 :(得分:-1)

我更进了一步。

而不是

git clone http://cgit.freedesktop.org/pixman/

我是用

下载的
git clone --recursive http://dev.laptop.org/git/users/cscott/android-pixman

并将所有文件复制到空jni/pixman目录中。现在找到了文件pixman-elf-fix.h,但链接器失败了:

  

/tmp/cc2XOCMj.o:(.ARM.exidx.text.main + 0x0):对__aeabi_unwind_cpp_pr0'的未定义引用。

但这可能是由this same problem

引起的