1

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

我的配置命令是: ./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”上

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

4

1 回答 1

1

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

这是创建密码保护的 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 配置会出错。我在 ghostpdl-9.14 文件夹的顶层目录中编辑了 shell 脚本文件“configure”。在第 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 文件。

对“configure”文件进行两次编辑后,运行配置命令(从顶部 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 后,终端屏幕提供了帮助信息,告诉我二进制文件已成功编译。

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

干杯!

于 2014-05-10T14:46:05.220 回答