用于ARM9的交叉编译GhostPDL

时间:2014-05-07 23:55:57

标签: linux arm cross-compiling ghostscript libharu

我正在尝试交叉编译GhostPDL-9.06(这个和任何更高版本)。我打算在MOXA arm9 linux计算机上使用pcl6。提供的工具链编译得很好。但是,二进制文件最终会在构建计算机而不是目标上运行。看来我没有用arch.h文件做正确的事情。页面底部有http://ghostscript.com/FAQ.html的交叉编译说明。他们的经验水平有点模糊。我已经搜索了很多,并在http://ghostscript.com/irclogs/2014/03/12.html的jroo页面顶部发现了更多说明,但我仍然卡住了。

我的配置命令是: ./configure CC = arm-linux-gcc CCLD = arm-linux-gcc CCAUX = gcc --host = arm-linux --target = arm-linux --without-x

libtiff配置错误但是在make之后,我仍然得到了一个pcl6二进制文件,只能在ubuntu i686机器上运行。

我被困在"手动生成arch.h"

是否有人有关于交叉编译的任何详细信息,以提供更多说明?

1 个答案:

答案 0 :(得分:2)

我现在有一个交叉编译的pcl6二进制文件,可在MOXA ART ARM9 32位RISC CPU上运行。至少我需要的功能正在发挥作用。

以下是创建密码保护pdf文件的命令行,每页62行:

./pcl6 -J'@PJL SET FORMLINES=62' \
-dNOPAUSE -sDEVICE=pdfwrite \
-sOwnerPassword=yourpassword \
-dEncryptionR=3 -dPermissions=-3884 \
-sOutputFile=yourfile.pdf yourfile.pcl

我不完全确定为什么我要进行交叉编译,但确实如此,这就是我如何交叉编译ghostpdl-9.14:

和以前一样,我仍然传递配置参数:

主要问题是创建make文件,因为配置无法完成。 libtiff配置会出错。我编辑了shell脚本文件" configure"在ghostpdl-9.14文件夹的顶级目录中。在5255行,我更换了" $ SUBCONFIG_OPTS"用"

CC=arm-linux-gcc CCLD=arm-linux-gcc CCAUX=gcc --host=arm-linux --target=arm-linux --without-x

我这样做是因为由于某种原因,libtiff配置将不会从主配置接收参数。

完成此编辑后,libtiff配置将最终启动并运行到最后。但是,关于BIGENDIAN测试仍然存在错误。所以我用一条消息

替换了5716到5719行
$as_echo "Ignore BIGENDIAN Test";

结果,配置完成并创建了必要的make文件。

对"配置"进行两次编辑后文件,运行配置命令(从顶部ghostpdl-9.14目录):

./configure CC=arm-linux-gcc CCLD=arm-linux-gcc \
CCAUX=gcc --host=arm-linux --target=arm-linux --without-x

配置完成后,使用make命令传递交叉编译要求:

make CC=arm-linux-gcc CCLD=arm-linux-gcc CCAUX=gcc

也许这不是必要的,但既然有效,我就发布了。

我的第一个测试是查看构建计算机是否运行了pcl6二进制文件。一旦消息"无法执行二进制文件",我知道我有一些部分成功。在将其传输到ARM9并运行没有选项的pcl6之后,终端屏幕提供了帮助信息,告诉我二进制文件已成功编译。

经过几个小时的搜索和实验,也许这可能会帮助有相同目标的人。

干杯!