用于android的交叉编译ghostscript,我应该使用什么主机?

时间:2016-05-27 08:26:01

标签: android android-ndk java-native-interface ghostscript

嗨大家我正在使用this教程构建ghostscript-9.19,以便能够在我的Android应用程序中将eps文档转换为pdf。配置时失败。这是日志

checking whether to enable maintainer-specific portions of Makefiles...
no
checking for gcc... arm-linux-androideabi-gcc -- 
sysroot=/<path>/android-ndk-   
r11c/platforms/android-17/arch-arm/
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... configure: error: in    
`/<path>/ghostscript-9.19/tiff-config':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details
configure: error: libtiff configure script failed

这是我正在运行的构建文件

#!/bin/sh
# Compiles ghostscript for Android
# Make sure you have NDK_ROOT defined in .bashrc or .bash_profile

INSTALL_DIR="`pwd`/app/jni/gs"
SRC_DIR="`pwd`/../ghostscript-9.19"

cd $SRC_DIR

export
PATH="/<path>/android-ndk-r11c/toolchains/arm-        
linux-androideabi-4.9/prebuilt/darwin-x86_64/bin:$PATH"
export SYS_ROOT="/<path>/Android/android-ndk-
r11c/platforms/android-17/arch-arm/"
export CC="arm-linux-androideabi-gcc --sysroot=$SYS_ROOT"
export LD="arm-linux-androideabi-ld"
export AR="arm-linux-androideabi-ar"
export RANLIB="arm-linux-androideabi-ranlib"
export STRIP="arm-linux-androideabi-strip"

mkdir -p $INSTALL_DIR
./configure --host=arm-linux-androideabi --build=x86_64-apple-darwin
--prefix=$INSTALL_DIR LIBS="-lc -lgcc"

make PREFIX=$INSTALL_DIR
make install DESTDIR=$INSTALL_DIR

exit 0

我正在使用--host = arm-linux-androideabi。我应该使用什么主机?我需要在ghostScript项目中进行哪些更改才能成功编译? 任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:2)

交叉编译Ghostscript非常复杂,部分原因是Ghostscript构建依赖于构建和运行临时工具(genarch,genconf,mkromfs和echogs),这些工具显然必须使用本机编译器而不是交叉编译器构建。 / p>

我认为您遇到的问题是因为对libtiff configure的调用并没有传递所需的选项。

您可能会更好地抓住并调整此提交中的两个文件(makefile和标头): Makefile for Android MuPDF libgs.so

并调整它以符合您的要求。

在本页底部有一个关于如何进行交叉编译的基本指南: Ghostscript FAQ

我有一个&#34;项目&#34;为了改进对交叉编译的支持,但目前进展缓慢。