COBOL2002 操作ガイド


2.3.5 最終生成物の種類(プロジェクトの種類)の設定

最終生成物の種類(開発マネージャでは,プロジェクトの種類)を設定するコンパイラオプションについて,説明します。

注※

最終生成物とは,コンパイラが最終的に生成する実行可能ファイル,DLL,または標準ライブラリのことを示します。

〈この項の構成〉

(1) -Mainオプション

(a) 形式

-Main,{System|V3} ファイル名

(b) 機能

最外側のプログラムをアプリケーションの主プログラムとしてコンパイルします。

ファイル中に複数の最外側のプログラムがあるときは,先頭の最外側のプログラムを主プログラムとしてコンパイルします。

-Main,System ファイル名(System指定メインプログラム)

最外側のプログラムをアプリケーションの主プログラムとしてコンパイルします。

このとき,主プログラムが制御プログラムから受け取る引数の形式を,システム固有のargc,argv形式に合わせます。

なお,開発マネージャでは,プロジェクトの種類で「System指定メインプログラム」を選び,「メインファイルを指定する」オプションにメインファイルを指定すると,-Main,Systemオプションが指定されます。

-Main,V3 ファイル名(V3指定メインプログラム)

最外側のプログラムをアプリケーションの主プログラムとしてコンパイルします。

このとき,主プログラムが制御プログラムから受け取る引数の形式を,メインフレーム(VOS3)に合わせます。

なお,開発マネージャでは,プロジェクトの種類で「V3指定メインプログラム」を選び,「メインファイルを指定する」オプションにメインファイルを指定すると,-Main,V3オプションが指定されます。

(c) 注意事項

  • -Main,Systemオプションまたは-Main,V3オプションの指定がない場合で,次の条件をすべて満たすときには,先頭のCOBOLソースファイルに-Main,Systemオプションを指定したものと仮定されます。

    1. -Compileオプションの指定がなく,かつ,オブジェクトファイル(.obj)の指定がない。

    2. -SimMainオプションの指定がない。

  • -Mainオプションと-MainNotCBLオプションまたは-Dllオプションを同時に指定した場合,-Mainオプションが無効となります。

    (例)

    -MainNotCBL -Main,System

    と指定した場合,-MainNotCBLオプションが有効となり,-Mainオプションは無効となります。

  • -Main,Systemオプション,-Main,V3オプションについては,マニュアル「COBOL2002 ユーザーズガイド」の記述も参照してください。

  • このオプションは,直後に指定されたファイルをアプリケーションの主プログラムとして扱います。

    [図データ]

  • -Main,V3オプションを指定して作成した実行可能ファイルを実行するとき,受け取れるコマンド引数は一つ(空白まで)です。コマンド引数に空白を含むときは,引用符( " )で囲みます。

(2) メインプログラムなし

開発マネージャ上でプロジェクトをビルドする場合に,メインのCOBOLソースファイルを指定しないとき,このオプションを指定します。「メインプログラムなし」を指定したプロジェクトは,メインプログラムのオブジェクトファイルまたはライブラリを,プロジェクトに登録する必要があります。

このコンパイル方式を選んだ場合で,作成しようとしているCOBOLプログラムが次の二つの条件を満たすときは,-MainNotCBLオプションを指定する必要があります。

このプロジェクトの種類で指定できるオプションは,-Main,Systemオプション(System指定メインプログラム)または-Main,V3オプション(V3指定メインプログラム)を指定して実行可能ファイルを生成する場合に準じますが,次のオプションは指定できません。

「メインファイルを指定する」

このオプションは,開発マネージャだけで指定できます。

(3) -Dllオプション(最終生成物の種類がダイナミックリンクライブラリ)

(a) 形式

-Dll,{Stdcall|Cdecl}
-Dll
-noDll

(b) 機能

DLL形式のオブジェクトファイルを出力します。-Dllオプションを指定しない場合は,実行可能ファイル(.exe)形式のオブジェクトファイルを出力します。

-Dllオプションを指定した場合,同時に指定したCOBOL原始プログラムは,すべてDLL形式のオブジェクトファイルとなります。

なお,開発マネージャでは,最終生成物の種類に「ダイナミックリンクライブラリ」を選ぶと,-Dllオプションが指定されます。

-Dll,Stdcall(Dllの属性をstdcallにする)(Windows(x86) COBOL2002で有効)

DLLの属性をstdcallにします。

なお,開発マネージャでは,「Dllの属性をStdcallにする」を選ぶと,-Dll,Stdcallオプションが指定されます。

-Dll,Cdecl(Dllの属性をcdeclにする)(Windows(x86) COBOL2002で有効)

DLLの属性をcdeclにします。

なお,開発マネージャでは,「Dllの属性をCdeclにする」を選ぶと,-Dll,Cdeclオプションが指定されます。

-Dll(Dllの属性をfastcallにする)(Windows(x64) COBOL2002で有効)

DLLの属性をfastcallにします。

開発マネージャでは,最終生成物の種類に「ダイナミックリンクライブラリ」を選びます。

-noDll

-Dllオプションの指定を打ち消します。

(c) 注意事項

  • -Dllオプションを指定すると,-Main,System,-Main,V3,および-SimSubオプションが無効となります。

  • Windows(x64) COBOL2002の場合,-Dll,Stdcallオプション,または-Dll,Cdeclオプションを指定しても,-Dllオプションを指定したとみなされ,DLLの属性はfastcallになります。

(4) 標準ライブラリ

COBOLソースから標準ライブラリを作成します。

プロジェクトの作成時に,最終生成物の種類で「標準ライブラリ」を選んだ場合,この項目が指定されます。

このプロジェクトによって生成された標準ライブラリをリンクする実行可能プログラムが次の条件を満たす場合,-MainNotCBLオプションを指定する必要があります。

このプロジェクトの種類を選んだ場合,プロジェクトに指定できるオプションは-Main,Systemまたは-Main,V3オプションを指定した場合と同じです。ただし,次のオプションは指定できません。

-SimMain,-SimSub,-SimIdent,-Lib,「リンケージ処理を行わない」,「メインファイルを指定する」

このオプションは,開発マネージャだけで指定できます。