这是命令 perlqnx,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
perlqnx - QNX 上的 Perl 版本 5
商品描述
从 perl5.7.2 开始,所有测试都通过:
QNX 4.24G
Watcom 10.6 与 Beta/970211.wcc.update.tar.F
socket3r.lib 21 年 1996 月 XNUMX 日。
从 perl5.8.1 开始,至少有一个测试仍然失败。
在已知情况下,某些测试可能会抱怨。
有关更多信息,请参见下文和hints/qnx.sh。
在 QNX 6.2.0 下,仍有一些测试失败。 见下文和提示/qnx.sh
更多信息。
其他要求 软件 HPMC胶囊 编译中 Perl的 on QNX4
与许多 unix 端口一样,这个端口依赖于一些“标准”的 unix 实用程序,这些实用程序不是
QNX4 的必然标准。
/ bin / sh的
这被 Configure 大量使用,然后由 perl 本身使用。 QNX4的版本很好,但是
配置将在 16 位版本上阻塞,因此如果您运行的是 QNX 4.22,请链接
/ bin / sh的 到 /bin32/ksh
ar 这是标准的 unix 库构建器。 我们使用 wlib。 使用 Watcom 10.6,当 wlib
链接为“ar”,它的行为类似于 ar,一切都很好。 在 9.5 下,需要封面。
一个包含在 ../qnx 中
nm 这由 configure 使用(可选)以列出库的内容。 我会
在 UU 目录中动态生成封面函数。
cpp Configure 和 perl 需要一种方法来调用 C 预处理器。 我创建了一个简单的
为 cc 做正确的事情的封面。 没有这个,Configure 将创建它自己的
有效的包装器,但它不处理一些命令行参数
perl 会抛出它。
使
你真的需要 GNU make 来编译它。 GNU make 默认随 QNX 4.23 一起提供,但是
您可以从早期版本的 quis 中获取它。
优秀 问题 - Perl的 on QNX4
QNX4 不支持动态链接库。
如果你想用 Socket 扩展编译,你需要有 TCP/IP 工具包,并且
您需要确保 -lsocket 找到了 socket3r.lib 的正确副本。 当心
Watcom 编译器附带了 socket3r.lib 的存根版本,它几乎没有
功能。 还要注意 wlink 在目录中搜索库的顺序。
你可能有 /usr/lib/socket3r.lib 指向正确的库,但 wlink 可能会拿起
/usr/watcom/10.6/usr/lib/socket3r.lib 代替。 确保它们都指向正确的
库,即 /usr/tcptk/current/usr/lib/socket3r.lib。
QNX4下以下测试可能会报错:
dist/Cwd/Cwd.t 会抱怨如果 `pwd` 和 cwd 没有给出相同的结果。 cwd 电话
`fullpath -t`,所以如果你在运行测试之前 cd `fullpath -t`,它就会通过。
lib/File/Find/taint.t 会抱怨如果'.' 在您的路径中。 PATH 测试被触发
因为 cwd 调用了 `fullpath -t`。
ext/IO/lib/IO/t/io_sock.t:子测试 14 和 22 被跳过,因为
QNX 中没有实现读回套接字非阻塞状态的功能
TCP/IP。 这已报告给 QNX,它可能适用于更高版本的 TCP/IP。
t/io/tell.t:子测试 27 失败。 我们还在调查中。
QNX 辅 档
“qnx”目录下的文件是:
qnx/ar
模拟标准 unix 存档(又名库)实用程序的脚本。 在 Watcom 下
10.6,ar链接到wlib并提供了预期的接口。 使用 Watcom 9.5,
需要覆盖功能。 这个相当粗糙,但已证明足以
编译 perl。
qnx/cpp
提供 C 预处理功能的脚本。 配置可以生成一个
类似的封面,但它不处理 perl 抛出的所有命令行选项
它。 这可以合理地放置在 /usr/local/bin 中。
优秀 问题 - perl的 下 QNX6
对于 QNX 5.8.1 下的 Perl 6.2.0,以下测试仍然失败:
op/sprintf........................在测试 91 失败
lib/基准测试....................... 测试 26 失败
这是由于 C 库的 printf 例程中的错误造成的。 printf("'%e'", 0. ) 产生
'0.000000e+0',但 ANSI 需要 '0.000000e+00'。 QNX 已承认该错误。
交叉编译
Perl 支持通过 Native Development Kit (NDK) 交叉编译到 QNX NTO,用于
Blackberry 10. 这意味着您可以为 ARM 和 x86 版本的
平台。
设置 up a 交叉编译 环境
您可以从以下位置下载 NDKhttp://developer.blackberry.com/native/downloads/>.
参见
<http://developer.blackberry.com/native/documentation/cascades/getting_started/setting_up.html>
有关在尝试其他任何操作之前设置设备的说明。
安装 NDK 并设置好设备后,剩下要做的就是设置
设备和交叉编译环境。 黑莓提供了一个脚本,
“bbndk-env.sh”(偶尔命名为“bbndk-env_10_1_0_4828.sh”),它可以是
曾经这样做过。 但是,我们必须克服一些障碍:
脚本修改 PATH 以便“gcc”或“ar”指向它们的交叉编译等价物,
在构建过程中有哪些螺丝钉。
所以相反,你会想要做这样的事情:
$ 原路径=$PATH
$ 源 $location_of_bbndk/bbndk-env*.sh
$ export PATH="$orig_path:$PATH"
除了将交叉编译器和工具链的其余部分放在您的 PATH 中之外,这还将
还提供 QNX_TARGET 变量,我们将通过 -Dsysroot 将其传递给 Configure。
准备 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 目标 系统
目标系统很可能没有现成的 / tmp目录, 所以是
做这样的事情一般更安全:
$ ssh $TARGETUSER@$TARGETHOST 'rm -rf perl; mkdir perl; mkdir perl/tmp'
$ export TARGETDIR=`ssh $TARGETUSER@$TARGETHOST pwd`/perl
$ export TARGETENV="export TMPDIR=$TARGETDIR/tmp;"
稍后,我们将通过 -Dtargetenv 将其传递给 Configure
调用 配置
如果您的目标是 ARM 设备——目前包括绝大多数
手机和平板电脑——您需要将 -Dcc=arm-unknown-nto-qnx8.0.0eabi-gcc 传递给
配置。 或者,如果您的目标是 x86 设备,或使用模拟器
随 NDK 一起提供,您应该改为指定 -Dcc=ntox86-gcc。
示例配置调用如下所示:
./配置-des -Dusecrosscompile \
-Dsysroot=$QNX_TARGET\
-Dtargetdir=$TARGETDIR\
-Dtargetenv="$TARGETENV" \
-Dcc=ntox86-gcc\
-Dtarghost=... # 常用的交叉编译选项
使用 onworks.net 服务在线使用 perlqnx