我正在尝试交叉编译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"卡住了
是否有人有任何关于交叉编译的细节,提供更多的指令?
我现在有了一个交叉编译的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配置将出错。我编辑了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"文件进行两次编辑之后,运行configuration命令(从顶部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(没有任何选项)后,终端屏幕提供了帮助信息,告诉我二进制文件已成功编译。
经过几个小时的搜索和实验,也许这可以帮助有相同目标的人。
干杯!