这是 perlsymbian 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
perlsymbian - Symbian OS 上的 Perl 版本 5
商品描述
本文档描述了 Symbian 操作系统的各种功能,这些功能将影响
Perl 版本 5(以下简称 Perl)是如何编译和/或运行的。
注意: Free Introduction 端口 (如 of 0.4.1) 不 而不去 编 成 a 塞班 OS GUI 应用, 但是
代替 it 结果 in a 塞班 DLL。 DLL 包含一个名为 CPerlBase 的 C++ 类,它
然后可以(派生自和)使用将 Perl 嵌入到应用程序中,请参阅 symbian/自述文件.
Perl 到 Symbian 的基本端口只实现了基本的 POSIX 类功能; 它
没有为 Perl 实现任何进一步的 Symbian 或 Series 60、Series 80 或 UIQ 绑定。
也可以为“miniperl”和“perl”生成 Symbian 可执行文件,但由于
Symbian 没有标准的命令行界面(也没有全键盘)
设备),这些主要用作演示。
编译中 Perl的 on 塞班
(0) 您需要安装合适的Symbian SDK。
这些说明已经在各种诺基亚系列 60 下测试过
Symbian SDKs(1.2 到 2.6,2.8 也应该工作,1.2 编译但
不工作)、Series 80 2.0 和 Nokia 7710(Series 90)SDK。
您可以从诺基亚论坛 (Lhttp://www.forum.nokia.com/>)。
还对 UIQ 2.1 进行了非常粗略的移植(“编译”)。
任何 SDK 的先决条件是安装 ActivePerl
来自 ActiveState, Lhttp://www.activestate.com/Products/ActivePerl/>
安装 SDK 也意味着您需要
安装了 Metrowerks CodeWarrior(2.8 和 3.0 用于测试)
或已安装 Microsoft Visual C++ 6.0(最低 SP3,推荐 SP5)。
请注意,例如 Series 60 2.0 VC SDK 安装说明
关于 ActivePerl build 518,不再存在(截至 2005 年中期)
在 ActiveState 网站上。 ActivePerl 5.8.4 build 810 是
成功用于在 Symbian 上编译 Perl。 5.6.x ActivePerls
不工作。
其他 SDK 或编译器,如 Visual.NET,仅限命令行
Visual.NET、Borland、GnuPoc 或 sdk2unix 尚未尝试。
这些说明几乎肯定不适用于较旧的 Symbian
版本或其他 SDK。 使这个端口在其他地方运行的补丁
版本、SDK、编译器、平台或设备自然是受欢迎的。
(1) 获取Perl源代码分发(例如文件
perl-5.9.2.tar.gz 很好)来自http://www.cpan.org/src/>
并将其解压到 Windows 的 C:/Symbian 目录中
系统。
(2) 切换到perl源目录。
cd c:\Symbian\perl-5.xx
(3) 使用SDK自带的perl运行以下脚本
perl symbian\config.pl
您必须使用 cmd.exe,Cygwin shell 将无法工作。
PATH 必须包含 SDK 工具,包括 Perl、
这应该是 cmd.exe 下的情况。 如果你不
有那个,请参阅 symbian\sdk.pl 的末尾以获取注释
应该如何为 Symbian 编译设置您的环境。
(4) 构建项目,或者通过
全部制作
在 cmd.exe 中或使用 Metrowerks CodeWarrior
或 Visual C++ 6.0,或 Visual Studio 8(Visual C++
2005 Express Edition 工作正常)。
如果使用 VC IDE,则必须运行 F
首先使用cmd.exe,然后运行'make win.mf vc6.mf'生成
VC6 生成文件和工作区。 “make vc6”将为 VC6 编译,
和 CodeWarrior 的“make cw”。
以下 SDK 和编译器配置和诺基亚手机是
在某个时间点进行测试(+ = 编译并运行 PerlApp,- = 不),
Perl 5.8.x 和 5.9.x:
SDK | 风险投资| 连续波 |
------+----+----+---
S60 1.2 | + | + | 3650(*)
S60 2.0 | + | + | 6600
S60 2.1 | - | + | 6670
S60 2.6 | + | + | 6630
S60 2.8 | + | + | (未在设备中测试)
S80 2.6 | - | + | 9300
S90 1.1 | + | - | 7710
UIQ 2.1 | - | + | (未在设备中测试)
(*) 编译但不起作用,不幸的是,Symbian 有问题。
如果您直接使用“make”,则它是 SDK 中的 GNU make,
它将为 Windows 模拟器调用正确的 make 命令
根据需要构建和 Arm 目标构建(默认为“拇指”)。
构建脚本假定“绝对风格”SDK 安装在 C: 下,
“subst 风格”将不起作用。
如果使用 VC IDE,构建使用例如 File->Open Workspace->
C:\Symbian\8.0a\S60_2nd_FP2\epoc32\build\symbian\perl\perl\wins\perl.dsw
模拟器二进制文件将出现在同一目录中。
如果使用VC IDE,你会在开始时出现很多警告
构建,因为源提到的很多标题不能
被发现,但这并不严重,因为没有使用这些标头。
Metrowerks 会给出很多关于未使用变量的警告和
空声明,您可以忽略它们。
当 Windows 和 Arm DLL 被构建时不要被很长时间吓到
消息呼啸而过:这是“出口冻结”阶段,整个
列出了(相当大的)Perl 的 API。
构建完成后,您需要通过以下方式创建 DLL SIS 文件
制作perldll.sis
这将创建文件 perlXYZ.sis(XYZ 是 Perl 版本)
然后您可以将其安装到您的 Symbian 设备中:一种简单的方法
这样做是通过蓝牙或红外线发送它们,然后打开
消息。
由于所有 Perl SIS 文件安装后的总大小为
超过 2 MB,建议安装到
存储卡(驱动器 E:)而不是 C: 驱动器。
perlXYZ.SIS 的大小约为 370 kB 但一旦它在
设备 它大约是一个 750 kB(根据应用程序管理器)。
perlXYZ.sis 仅包含 Perl DLL:创建一个额外的
SIS 文件,其中包含一些标准(纯)Perl 库,
发出命令
制作perllib.sis
包括一些标准 Perl 库,但不是全部:
见L 或 F 更多细节
(250 KB -> 700 KB)。
一些标准的 Perl XS 扩展(见 L 是
也提供:
制作perlext.sis
这将创建 perlXYZext.sis (290 kB -> 770 kB)。
要编译演示应用程序 PerlApp,您首先需要
在 SDK 下安装 Perl 头文件。
安装 Perl 头文件和类 CPerlBase 文档
这样您就不再需要 Perl 源代码来编译 Perl
使用 SDK 的应用程序:
进行 sdk 安装
目标目录是 C:\Symbian\perl\XYZ 了解更多
详情见 F .
安装标头后,您可以为
PerlApp:
制作perlapp.sis
perlapp.sis (11 kB -> 16 kB) 将在 symbian 中构建
子目录,但也会复制到主目录。
如果要打包 Perl DLL(一个用于 WINS,一个用于 ARMI),
标题和文档:
制作 perlsdk.zip
这将创建可在另一个中使用的 perlXYZsdk.zip
Windows系统自带SDK,无需编译Perl
那个系统。
如果要打包 PerlApp 源代码:
制作 perlapp.zip
如果你想打包 perl.exe 和 miniperl.exe,你
可以使用perlexe.sis 和miniperlexe.sis make 目标。
您可能还需要库的 perllib.sis
甚至可能是识别器的 perlapp.sis。
make 目标 'allsis' 结合了上述所有 SIS 目标。
要在编译后进行清理,您可以使用以下任一方法
干净
使 distclean
取决于你想要多干净。
汇编 问题
如果您在“制作”之后立即看到
cat makefile.sh >makefile
'cat' 未被识别为内部或外部命令,
可运行的程序或批处理文件。
这意味着您需要(重新)运行 symbian\config.pl.
如果收到错误
'perl' 不被识别为内部或外部命令,
可运行的程序或批处理文件。
您可能需要重新安装 ActivePerl。
如果你看到这个
任 makedef.pl nomakedef.pl
该系统找不到指定的文件。
C:\Symbian\...\make.exe: [rename_makedef] 错误 1(忽略)
请忽略它,因为它并不严重(重命名 Perl 的构建过程
makedef.pl 为 nomakedef.pl 以避免将其与 SDK 的 makedef.pl 混淆)。
应用程序
PerlApp 应用程序演示了如何将 Perl 解释器嵌入 Symbian
应用。 “时间”菜单项运行以下 Perl 代码:“打印“运行于”,
$^O, "\n", scalar localtime", "Oneliner" 允许输入 Perl 代码,以及
“运行”打开一个文件选择器,用于选择要运行的 Perl 文件。
PerlApp 也会在“Perl 识别器”(也包括并安装)时启动
检测到通过 GUI 激活的 Perl 文件,并提供将其安装在
\Perl(如果 Perl 文件在消息应用程序的收件箱中)或运行它(如果
Perl 文件在 \Perl 下)。
西化.pl
在 symbian 子目录中有 西化.pl 可用于打包 Perl 的实用程序
脚本和/或 Perl 库目录到 SIS 文件中,这些文件可以安装到
设备。 要运行 sisify.pl 实用程序,您需要有“makesis”和“uidcrc”
已安装实用程序。 如果您没有 Win32 SDK,您可以尝试例如
<http://gnupoc.sourceforge.net/>或http://symbianos.org/~andreh/>.
运用 Perl的 in 塞班
首先请注意,您在使用 Perl 时可以完全访问 Symbian 设备:您可以
除非您小心,否则会对您的设备造成很大损坏(例如删除系统文件)。
请在做任何事情之前进行备份。
Perl 移植大部分是使用 Symbian 标准 POSIX-ish STDLIB 完成的
图书馆。 这是一个相当完整的库,但这种模拟的某些角落
倾向于在非 UNIX 平台上未实现的库已被保留
这次也未实现: 叉子(), 信号(), 用户/组 ID, 选择() 为...卖力
套接字、非阻塞套接字等。 查看文件 塞班/config.sh 并寻找
'undef' 来查找不受支持的 API(或从 Perl 使用 Config)。
Symbian 设备的文件系统使用 DOSish 语法,“驱动器”与路径之间由一个
冒号和路径的反斜杠。 驱动器的确切分配可能会有所不同
平台之间,但例如在 Series 60 中,您可能会看到 C: 作为(闪存)主
内存,D:作为RAM驱动器,E:作为存储卡(MMC),Z:作为ROM。 在 80 D 系列中:
是存储卡。 就设备而言,NUL: 是位桶,COMx: 是
串行线,IRCOMx: 是 IR 端口,TMP: 可能是 C:\System\Temp。 记得加倍
双引号字符串中的那些反斜杠。
Perl DLL 安装在 \System\Libs\ 中。 Perl 库和扩展 DLL 是
安装在 \System\Libs\Perl\XYZ\ 中。 PerlApp 安装在 \System\Apps\ 中,并且
SIS 还在\Perl\(诺基亚7710 上的C:\Mydocs\Perl\)中安装了几个演示脚本。
请注意,Symbian 文件系统非常挑剔:它强烈倾向于使用 \ 而不是
/.
在进行 XS / Symbian C++ 编程时,首先包括 Symbian 头文件,然后是任何
标准 C/POSIX 头文件,然后是 Perl 头文件,最后是任何应用程序头文件。
新() 和 复制() 不幸的是,Symbian 和 Perl 代码都使用了,所以你必须
如果需要,可以玩 cpp 游戏。 PerlBase.h 取消 Perl 定义并重新定义
他们作为 PerlNew() 和 复制().
TO DO
很多。 看 symbian/待办事项.
警告
从 Perl Symbian 端口版本 0.4.1 开始,Perl 标准回归测试套件的任何部分
尚未在使用移植的 Perl 的真正 Symbian 设备上运行,因此可能会出现无数错误
躺着等。 因此,绝对没有保修。
注意
在为 Symbian 或
Series 60 or Series 80 or Series 90 建议注册商标
API 名称中未使用商标或商品名称。 相反,开发人员应该
考虑将 API 命名建立在现有(C++ 或 Java)公共组件中,并且
API 命名,根据新 API 的编程语言规则进行适当修改
是给。
诺基亚是诺基亚公司的注册商标。 诺基亚的产品名称是商标
或诺基亚的注册商标。 此处提及的其他产品和公司名称可能
是其各自所有者的商标或商号。
使用 onworks.net 服务在线使用 perlsymbian