同时可在Win10 linux 子系统构建。
此移植基于以下版本
ubunut 20.04
ghostscript 9.54.0
android ndk 23.0.7599858
android 系统版本8.0(api 26)
下载地址:
ghostscript 官方下载:www.ghostscript.com/download/gs…
目前最新版本:github.com/ArtifexSoft…
android ndk 官方下载:developer.android.com/ndk/downloa…
目前最新版本:dl.google.com/android/rep…
# 如有需要,可设置代理
export http_proxy=http://127.0.0.1:2080
export https_proxy=http://127.0.0.1:2080
sudo apt update
# 下载ghostscript-9.54.0 并解压
wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9540/ghostscript-9.54.0.tar.gz
tar -zxvf ghostscript-9.54.0.tar.gz
# 下载android-ndk-r23-linux 并解压
wget https://dl.google.com/android/repository/android-ndk-r23-linux.zip
unzip android-ndk-r23-linux.zip
# 配置ndk交叉编译环境变量。
export NDK=`pwd`/android-ndk-r23
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
export TARGET=armv7a-linux-androideabi
export API=26
export AR=$TOOLCHAIN/bin/llvm-ar
export CC=$TOOLCHAIN/bin/$TARGET$API-clang
export AS=$CC
export CXX=$TOOLCHAIN/bin/$TARGET$API-clang++
export LD=$TOOLCHAIN/bin/ld
export RANLIB=$TOOLCHAIN/bin/llvm-ranlib
export STRIP=$TOOLCHAIN/bin/llvm-strip
export CPPFLAGS="-DPNG_ARM_NEON_OPT=0"
export CFLAGS="-fPIE -fPIC"
export LDFLAGS="-pie"
export GS_INSTALL_DIR="/sdcard/Android/gs"
export GS_OUT_DIR="out/sdcard/Android"
cd ghostscript-9.54.0
# 因为Android没有 /tmp 目录,需要改成其他目录,目前改为/sdcard/tmp。
sed -i '90s/"\/tmp\/"/"\/sdcard\/Android\/gs\/tmp\/"/' ./base/gp_unifs.c
# 如果提示缺少gcc,运行 sudo apt install g++
# 如果提示缺少make,运行 sudo apt install make
./configure --host $TARGET --prefix=$GS_INSTALL_DIR --disable-sse2 --disable-dbus --disable-gtk --without-tesseract --disable-fontconfig --with-local-cups --with-drivers=ALL
# 开始构建
make
# 删除已存在的安装目录(之前的构建)
sudo rm -rf $GS_INSTALL_DIR
# 安装ghostscript到 GS_INSTALL_DIR 目录下
sudo make install
cd ..
rm -rf out
mkdir -p $GS_OUT_DIR
cp -r $GS_INSTALL_DIR $GS_OUT_DIR
rm adb_push_gs.bat
echo "adb push $GS_OUT_DIR/gs $GS_INSTALL_DIR" >> adb_push_gs.bat
echo "adb push $GS_OUT_DIR/gs/bin/gs /system/bin" >> adb_push_gs.bat
echo "adb shell chmod +x /system/bin/gs" >> adb_push_gs.bat
echo "pause" >> adb_push_gs.bat
无错误则表示编译成功。ghostscript 安装目录 $GS_INSTALL_DIR
参考链接:
Google NDK:developer.android.com/ndk/guides/…
Ghostscript的介绍和移植:blog.csdn.net/kangear/art…
Android遇上打印机:blog.csdn.net/kangear/art…