產生面板

此面板上的選項定義由編譯器產生的輸出。

有關 *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 位元組指標加以存取。

*INHERIT
已建立的模組可以使用單一層次或兆空間儲存體。 使用的儲存體類型將視呼叫程式所需要的儲存體類型而定。

中階語言資料
如果選取此勾選框,則中階語言資料將和正在編譯的物件模組一起儲存。

預設字元類型
如果選取此勾選框,則編譯器將把字元視為帶正負號的類型。否則, 將字元視為無正負號的類型。

設定檔資料
如果選取此勾選框,則將打開對正在編譯的程式或模組的程式設定檔。產生的程式碼將收集物件建立時的設定檔資料,包括執行程序中時間基本區塊的數量和對程序呼叫的次數。 建立設定檔可以改進 ILE 應用程式中快取記憶體行和記憶體頁面的使用,使程式的效能更好。

註:

  1. 獨立式 *MODULE 物件不能建立設定檔。

  2. 僅當「產生」選項面板上的下列選項也啟用之後此選項才有效。
    • 最佳化設定為 *FULL30 或更高。
    • 目標版次設定為 *CURRENT

兆空間選項

兆空間儲存位址
如果選取此勾選框,則編譯器將產生的程式碼能夠處理兆空間儲存位址, 包括從其他已啟用兆空間的程式和服務程式傳遞參數。選擇此勾選框還將啟用下列勾選框:

兆空間儲存函數
如果選取此勾選框,則編譯器將使用兆空間版本的儲存函數, 如 mallocschmat, 而無須變更原始程式碼。編譯器定義了 __TERASPACE__ 巨集, 並將某些儲存函數名稱對映到其相應的支援兆空間的地方。例如, 選取此編譯器選項會造成 malloc() 儲存體函數對映到 _C_TS_malloc()

如果 選取此勾選框, 則編譯器就不會 使用支援兆空間版本的儲存函數 (如 malloc()schmat())。

範本選項

暫時併入目錄
此選項會指定由自動範本個體化所造成的範本儲存位置。 可以指定下列選項:

*CMDDFT
範本個體化檔案會儲存於系統中目前設定為預設值的位置。

directory_pathname
範本個體化檔案會放在您指定的目錄位置中。 已建立的範本個體化檔案具有標頭檔 (其中存有範本) 的根名稱, 且副檔名為 .C。如果範本個體化檔案已經存在, 則在新增給定的範本個體化到個體化檔案前, 編譯器會搜尋這些檔案以察看它是否已經存在。

目錄路徑可以是相對於現行目錄,或可以是絕對目錄路徑。 如果指定的目錄不存在,則會建立它。 但是,如果指定的目錄路徑含有不存在的目錄 (例如, /source/subdir1/tempinc,而 subdir1 不存在),則會發生錯誤狀況。

所產生標頭的最大值
指定對每一個標頭檔所產生的範本併入檔數上限。

範本驗證檢查
指定適用於範本的驗證檢查層次。可以指定下列選項:

*CMDDFT
依據系統的預設值,檢查範本的有效性。

*NO
不檢查範本施行的有效性。

*WARN
剖析範本施行並發出語意錯誤的警告訊息。

*ERROR
將範本施行中的問題視為錯誤,即使範本不是案例化的。