【问题标题】:Cross Compile GhostPDL for ARM9为 ARM9 交叉编译 GhostPDL
【发布时间】:2014-05-07 23:55:56
【问题描述】:

我正在尝试交叉编译 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”

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

【问题讨论】:

  • 您最好访问 Freenode 上的#ghostscript IRC 频道并在那里提问。
  • 感谢您的建议。我确实访问了 IRC 频道,他们非常有帮助。但是,如果没有深入讨论,有些未解决的问题很难解释。有用的建议是我不必担心 arch.h,因为我的构建机器会默认创建正确的文件。

标签: linux arm cross-compiling ghostscript libharu


【解决方案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 后,终端屏幕提供了帮助信息,告诉我二进制文件已成功编译。

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

干杯!

【讨论】:

    猜你喜欢
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 2022-10-05
    • 2019-05-21
    相关资源
    最近更新 更多