我正在尝试交叉编译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"
是否有人有关于交叉编译的任何详细信息,以提供更多说明?
答案 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之后,终端屏幕提供了帮助信息,告诉我二进制文件已成功编译。
经过几个小时的搜索和实验,也许这可能会帮助有相同目标的人。
干杯!