ghostscript9.26交叉编译
测试命令
./gs -q -dBATCH -dSAFER -dQUIET -dNOPAUSE -sPAPERSIZE=a4 -r300x300 -sDEVICE=pbmraw -sOutputFile=output.pbm iuput.pdf
交叉编译步骤
-
下载解压
找到需要的版本https://github.com/ArtifexSoftware/ghostpdl-downloads/releases下载源代码
mkdir ~/gs gzip -d ghostscript-9.26.tar.gz tar -xf ghostscript-9.26.tar
-
生成平台文件 linux-arm-gcc.h
-
拷贝base/genarch.c和base/stdpre.h至单独文件夹并交叉编译
cd ~/gs/ghostscript-9.26 mkdir ~/gs/arch cp ~/gs/ghostscript-9.26/base/genarch.c ~/gs/arch cp ~/gs/ghostscript-9.26/base/stdpre.h ~/gs/arch cd cd ~/gs/arch arm-linux-gnueabihf-gcc genarch.c -o genarch
-
将生成的genarch拷贝至目标板最小系统上运行即可生成linux-arm-gcc.h
-
-
修改Makefile.in
CCAUX=@CCAUX@CCAUX=gcc
TARGET_ARCH_FILE=@ARCH_CONF_HEADER@TARGET_ARCH_FILE=$(GLSRCDIR)/…/arch/linux-arm-gcc.h
-
修改configure
GCFLAGS=“KaTeX parse error: Can't use function '\"' in math mode at position 31: …LOR_INDEX_TYPE=\̲"̲color_ind_type”"GCFLAGS="$GCFLAGS"
-
某些版本的jpeg库可能会报错
err:‘JERR_HUFF_CLEN_OVERFLOW’ undeclared
vim jpeg/jchuff.c 文件开头添加 #define JERR_HUFF_CLEN_OVERFLOW "JERR_HUFF_CLEN_OVERFLOW"
-
交叉编译
#!/bin/bash set -e ROOT_DIR=/home/xxx/gs/ins_gs export CC=arm-linux-gnueabihf-gcc #某些依赖库位置 export CFLAGS="-fPIC -I/xxx/include" export CPPFLAGS=${CFLAGS} export LDFLAGS="-L/xxx/lib" #export PKG_CONFIG_PATH=/xxx/lib/pkgconfig #交叉编译好的CUPS 不需要可不指定 export CUPSCONFIG=/xxx/bin/cups-config ./configure --prefix=${PREFIX_DIR} --host=arm-linux --target=arm-linux --disable-fontconfig --with-fontpath=/usr/share/fonts --enable-freetype --disable-gtk --without-libpaper --without-jbig2dec --without-libidn --disable-openjpeg --enable-cups --without-x make clean make make install DESTDIR=$ROOT_DIR