生成面板

此面板上的选项定义由编译器生成的输出。

有关 *CMDDFT 设置和按钮帮助的信息,请参见一般对话帮助

生成选项

权限
为没有对象特定权限的用户指定对象权限。用户可能不在权限列表上,或者其组没有对象的特定权限。可以在这个字段中选择下列其中一个值:

*CMDDFT
引用系统当前设置为缺省值的对象权限。

*LIBCRTAUT
对象的公用权限从目标库(包含已创建对象的库)的 CRTAUT 关键字获得。这个值是在创建对象时确定的。如果在创建对象之后库的 CRTAUT 值发生更改,新值不会影响任何现有对象。

*ALL
提供对象的所有操作权限,除了那些受限于所有者或受权限列表管理权限控制的操作。所有用户都可以控制对象的存在,指定它的安全性并执行它的基本功能,但不可以转让它的所有权。

*CHANGE
提供所有数据权限和执行对象的所有操作权限,除了那些受限于所有者或受对象权限和对象管理权限控制的操作。可以更改对象并对它执行基本功能。

*EXCLUDE
没有特权的用户不能访问对象。

*USE
提供对象操作权限、读权限以及对象的基本操作权限。没有特定权限的用户不能更改对象。

目标发行版
为正在创建的对象指定操作系统的发行版级别。可选择下列某一个值填入该字段中:

*CMDDFT
参考系统当前缺省的发行版级别。

*CURRENT
正在编译的对象所使用的操作系统与当前在系统上运行的操作系统的发行版级别相同或更高。例如,如果编译系统的发行版级别是 V2R3M5,则选择此选项会生成一个对象,它可以在安装了发行版级别为 V2R3M5 或更高级别的系统上运行。

*PRV
正在编译的对象所使用的操作系统比编译系统上使用的操作系统低一个级别。例如,如果编译系统的发行版级别是 V2R3M5,则选择该选项将生成一个对象,它可以在安装了发行版级别为 V2R2 或更高级别的系统上运行。

也可以直接在这个字段中输入目标发行版级别。使用格式 VxRxMx 指定发行版,其中,Vx 是版本,Rx 是发行版,Mx 是修订版级别。例如,V4R3M0 是版本 4,发行版 3,修订本级别 0。

优化
指定应用于编译对象的优化级别。可选择下列某一个值填入该字段中:

*CMDDFT
参考系统当前缺省的优化级别。

10
生成的代码不进行优化。这一级别的编译时间是最短的。

20
对生成的代码进行了一些优化

30
对生成的代码进行完全优化。

40
所有在级别 30 上进行的优化都是在生成的代码上执行的。此外,代码将从启用指令跟踪和调用跟踪系统功能的过程序言和收尾例程中删除。删除此代码就可以创建叶过程。叶过程不包含对其它过程的调用,而且对叶过程的过程调用要明显快于对普通过程的调用。

枚举大小
指定一个枚举将占用多少存储空间。可选择下列某一个值填入该字段中:

*CMDDFT
使用系统当前缺省的枚举大小。

1
所有枚举变量的大小都为 1 字节。

2
所有枚举变量的大小都为 2 字节。

4
所有枚举变量的大小都为 4 字节。

*INT
使用“ANSI C++ 标准”的枚举大小(带正负号的 4 字节;除非枚举值 > 231-1)。

*SMALL
选择可以容纳枚举变量的最小大小。

存储器模型
指定模块对象将使用的存储器的类型(静态的和自动的)。可选择下列某一个值填入该字段中:

*CMDDFT
参考系统当前缺省的枚举大小。

*SNGLVL
模块或程序将使用传统的单级存储器模型。在单级存储器中分配对象的静态和自动存储器,并且只能使用 16 个字节的指针访问它。如果指定了 TERASPACE(*YES) 选项,则模块可以随意地访问兆兆动态存储器。

*TERASPACE
模块或程序将使用兆兆空间存储器模型。这个存储器模型为单个作业提供多达 1 个太字节的本地地址空间。在兆兆空间中分配对象的静态和自动存储器,并且只能使用 8 个字节或 16 个字节的指针访问它。

用户概要文件
指定在运行已编译的程序对象时使用的用户概要文件,包括程序对象对每个对象所拥有的权限。程序所有者或程序用户的概要文件将用来控制程序对象将使用哪些对象。

可选择下列某一个值填入该字段中:

*CMDDFT
参考系统当前缺省的用户概要文件。

*USER
使用运行程序对象的用户的概要文件。

*OWNER
使用程序所有者和程序用户的用户概要文件中的对象权限集合,以在程序对象的处理时间内查找和访问对象。程序用户拥有由程序创建的对象。

缺省 char 类型
如果选择此复选框,则编译器将把 char 视为有符号的类型。否则,将 char 视为无符号的类型。

简要数据
如果选择此复选框,则将打开对正在编译的程序或模块的程序概要文件。生成的代码将收集对象创建时的概要文件数据,包括执行过程中的基本块的次数和对过程调用的次数。建立概要文件可以改进 ILE 应用程序中高速缓存 行和内存页面的使用,使程序的性能更好。

注:

  1. 独立的 *MODULE 对象不能建立概要文件。

  2. 仅当“生成”选项面板上的下列选项也启用之后此选项才有效。
    • 优化设置为 *FULL30 或更高。
    • 目标发行版设置为 *CURRENT

兆兆空间选项

兆兆空间存储地址
如果选择此复选框,则编译器将生成的代码能够处理兆兆空间存储地址,包括从其它支持兆兆空间的程序和服务程序传递参数。选择此复选框还将启用下列复选框:

兆兆空间存储函数
如果选择此复选框,则编译器将使用兆兆空间版本的存储函数,如 mallocschmat,而无须更改程序源代码。编译器定义了 __TERASPACE__ 宏,并将某些存储函数名称映射到其相应的支持兆兆空间的地方。例如,选择此编译器选项,会使 malloc() 存储函数映射到 _C_TS_malloc()

如果没有选中此复选框,则编译器就不能使用支持兆兆空间版本的存储函数,如 malloc()schmat()

模板选项

临时包括目录
这个选择指定用于放置从自动模板实例产生的模板的位置。可以指定下列选项:

*CMDDFT
将模板实例文件放到系统当前缺省的位置。

directory_pathname
将模板实例文件放到您所指定的目录位置。创建的模板实例文件具有在其中找到模板的头文件的根名称,文件扩展名是 .C。如果模板实例文件已存在,则在将给定的模板实例添加到实例文件之前,编译器对它们进行搜索,以查看它是否已经存在。

目录路径可以相对于当前目录,或者是一个绝对目录路径。如果指定的目录不存在,则创建它。但是如果指定的目录路径包含不存在的目录(例如,当 subdir1 不存在时,指定 /source/subdir1/tempinc),会发生错误。

生成的最大头文件数
指定要为每个头文件生成的最大模板包括文件数。

模板有效性检查
指定应用于模板的有效性检查级别。可以指定下列选项:

*CMDDFT
根据系统的缺省设置来检查模板的有效性。

*NO
不检查模板实现的有效性。

*WARN
对模板实现进行语法分析并对语义错误发出警告消息。

*ERROR
即使没有实例化模板,也要将模板实现中的问题视为错误。