跳至内容

鹦鹉虚拟机/构建鹦鹉

来自 Wikibooks,开放世界中的开放书籍

获取鹦鹉

[编辑 | 编辑源代码]

最新的鹦鹉开发版可以从CPAN下载。

鹦鹉的开发由位于http://svn.parrot.org/parrot/的 SVN 仓库控制。可以通过svn checkouthttps://svn.parrot.org/parrot/trunk/获取鹦鹉的最新版本。

从源代码构建鹦鹉

[编辑 | 编辑源代码]

鹦鹉目前以源代码下载的形式提供,尽管有些人试图维护预编译版本以供下载。这些版本通常适用于 Windows、Cygwin、Debian 和 Red Hat。将来可能会添加其他二进制发行版。安装预编译的鹦鹉二进制发行版的说明因特定平台和打包方法而异。有关您下载的任何发行版的更多详细信息,请咨询随附的文档。此页面将不会讨论这些特定发行版,只讨论从原始源代码构建鹦鹉的方法。

在 Windows 平台上,用免费提供的nmake代替make

目前鹦鹉构建过程需要使用make、一个可用的 C 编译器和一个可用的 Perl 5 安装。Perl 版本应为 5.8 或更高版本。没有这些东西,你就无法构建鹦鹉。在各种系统上对这些工具的各种组合执行自动测试,任何特定版本都应该能够正确编译。如果您在系统上编译鹦鹉时遇到问题,请向 Parrot Porters 邮件列表发送一封包含问题详情的邮件,鹦鹉开发人员之一会尽力帮助您解决。

Configure.pl

[编辑 | 编辑源代码]
请注意,Configure.pl 的第一个字母是大写的。在区分大小写的 Unix 和 Linux 系统上,这是一个重要的区别。

构建鹦鹉的第一步是运行Configure.pl脚本,它将在您的系统上执行一些基本测试并生成一个 makefile。要自动使用最常见的选项调用Configure.pl,请运行程序Makefile.pl。配置过程会在您的系统上执行许多测试,以确定一些重要的参数。这些测试在某些系统上可能需要几分钟,请耐心等待。此外,配置会为您的系统创建一些平台特定的代码文件。如果没有这些生成的代码文件,构建过程将无法继续。

Configure.pl 执行完毕后,您应该会得到一个名为Makefile的文件(没有后缀)。从 shell 中进入鹦鹉目录,输入命令 "make" 或 "nmake"(Windows 上)。这将启动构建鹦鹉的过程。鹦鹉构建过程可能需要几分钟,因为要执行许多步骤。我们将在后面的章节中讨论其中一些步骤。

鹦鹉的根目录包含一个名为 MANIFEST 的文件。MANIFEST 包含鹦鹉仓库中所有必要文件的列表。如果您向鹦鹉源代码树中添加了一个新文件,请确保将该文件添加到 MANIFEST 中。Configure.pl 会检查 MANIFEST 以确保所有文件都存在,然后再尝试构建。

Configure.pl 选项

[编辑 | 编辑源代码]

根据您想要执行的任务或使用鹦鹉的方式,可以为 Configure.pl 指定许多选项。这些选项可能会改变几个生成文件的组成,包括 Makefile。这里,我们将列出其中一些选项。

--help 显示帮助消息
--version 打印有关 Configure.pl 的版本信息
--verbose 向控制台打印额外信息
--fatal 如果任何步骤失败,立即杀死 Configure,不要运行其他测试
--silent 不向控制台输出任何信息
--nomanicheck 不检查 MANIFEST 文件以确保所有文件都存在。
--languages 指定一个用逗号分隔的语言列表,以便在构建鹦鹉后构建这些语言。
--ask 向用户询问常见问题答案,而不是运行探测。
--test 首先测试配置工具,然后测试 Configure,最后测试构建工具。使用 --test=configure 测试配置工具,然后运行 Configure.pl。使用 --test=build 运行 Configure.pl,然后也测试构建工具。
--debugging 设置 --debugging=0 关闭调试。默认情况下启用调试。
--inline 指定您的 C 编译器是否支持使用 C inline 关键字的内联代码。
--optimize 使用编译器优化和一些其他加速技巧编译鹦鹉。可以创建一个速度更快的鹦鹉,但也可能会暴露更多错误和故障。使用 --optimize=(flags) 指定要使用的编译器优化标志。
--parrot_is_shared 将鹦鹉动态链接到 libparrot,而不是静态链接。
--m=32 在 64 位平台上,编译 32 位鹦鹉。
--profile 打开分析。目前只适用于 GCC 编译器。
--cage 打开其他警告,用于 Cage Cleaners。
--cc 指定要使用的编译器。例如,使用 --cc=gcc 表示 GCC 编译器,使用 --cc=cl 表示 Microsoft 的 C++ 编译器。使用 --ccflags 指定任何其他编译器标志,使用 --ccwarn 打开任何其他警告。以下是一些其他选项
  1. 要使用 C++ 编译器构建鹦鹉,请使用 --cxx 指定要使用的编译器。
  2. 使用 --libs 指定要与鹦鹉链接的任何其他库。
  3. 使用 --link 指定链接器
  4. 使用 --linkflags 向链接器发送选项
  5. 使用 --ld 选择加载器
  6. 使用 --ldflags 向加载器发送标志
  7. 使用 --make 指定要使用的 make 工具
--intval --floatval --opcode 设置要使用的每个值的 C 数据类型。请注意,--intval 和 --opcode 必须相同,否则可能会出现奇怪的错误。
--ops 指定要构建的任何可选 OPS 文件。
--pmc 指定要构建的任何可选 PMC 文件。
--without-gmp 不要使用
--without gdbm 在没有 GMP 的情况下构建鹦鹉
--without-opengl 在没有 OpenGL 支持的情况下构建鹦鹉
--without-crypto 在没有加密库的情况下构建鹦鹉
--icu-config 指定系统上 Unicode ICU 库的位置。
--without-icu 在没有 ICU 和 Unicode 支持的情况下构建鹦鹉。
--maintainer 使用 Lex 和 Yacc(或等效工具)编译 IMCC 的词法分析器和语法分析器。使用 --lex 指定词法分析器的名称,使用 --yacc 指定语法分析器的名称。
--miniparrot 构建 miniparrot
--prefix 指定一个路径前缀
--exec-prefix 指定一个执行路径前缀
--bindir 系统上二进制可执行文件所在的目录
--sbindir 系统管理员可执行文件文件夹
--libexecdir 程序可执行文件文件夹
--datadir 用于机器无关数据的只读数据目录。
--sysconfdir 用于机器相关的只读数据
--sharedstatedir 可修改的体系结构无关数据目录
--localstatedir 可修改的体系结构相关数据目录
--libdir 目标代码目录
--includedir 编译器包含文件所在的文件夹
--oldincludedir 用于旧版本的 GCC 的 C 头文件目录
--infodir info 文档目录
--mandir 手册页文档文件夹

鹦鹉可执行文件

[编辑 | 编辑源代码]

构建过程完成后,您应该拥有一个 Parrot 可执行文件(以及其他文件)。在 Windows 系统上,该文件名为 parrot.exe。在其他系统上,文件名可能略有不同,例如没有后缀。

还创建了另外两个有趣的程序,miniparrot.exelibparrot.dll。如果您不在 Windows 系统上,这些文件将具有不同的名称。

构建目标

[编辑 | 编辑源代码]

对于不熟悉 make 程序的读者来说,它是一个可以用来自动确定如何从源代码文件构建软件项目的程序。在 Makefile 中,您指定依赖项列表以及从其他文件生成一个文件的 方法。make 然后确定构建项目的顺序和方法。

make 有目标,这意味着一个 Makefile 可以有多个目标。对于 Parrot,已经定义了多个目标,可以帮助构建、调试和测试。以下是部分构建目标列表:

命令 解释
make 从源代码构建 Parrot。仅重新构建上次构建后更改的组件。
make clean 删除构建过程遗留的所有中间文件。清理目录树,以便可以完全重建 Parrot。
make realclean 完全删除所有临时文件、所有中间文件和所有 Makefile。在运行 make realclean 命令后,您需要再次运行 Configure.pl
make test 构建 Parrot(如果需要)并在其上运行测试套件。如果测试结果中存在错误,您可以尝试自行修复,或者向 Parrot 开发者提交错误报告。这将受到赞赏。
make fulltest 构建 Parrot(如果需要)并在每个运行内核上运行测试套件。这可能是一个非常耗时的操作,通常只在发布新版本之前执行。
make smoke 执行冒烟测试。这将运行 Parrot 测试套件并尝试将测试结果直接传输到 Parrot 开发服务器。冒烟测试结果可以帮助开发人员跟踪 Parrot 在哪些系统上可以正确构建。

提交错误和补丁

[编辑 | 编辑源代码]

如上所述,冒烟测试是向我们提交有关您系统上 Parrot 信息的简便方法。由于 Parrot 应该支持许多不同的计算机体系结构和操作系统,因此很难知道 Parrot 在所有系统上的运行情况。

除了冒烟测试,您还可以通过多种方式向 Parrot 提交错误报告。如果您是一名熟练的程序员,您可能也有兴趣尝试修复错误并提交补丁。


上一页 鹦鹉虚拟机 下一页
简介 运行_Parrot
华夏公益教科书