COBOL2002 使用の手引 手引編


32.5.10 リンクの設定

リンクを設定するコンパイラオプションについて,説明します。

〈この項の構成〉

(1) -Compileオプション

(a) 形式

-Compile,{CheckOnly|NoLink}
-noCompile

(b) 機能

プログラムのコンパイル時,オブジェクトファイル(.o),および実行可能ファイルの生成を抑止します。

-Compile,CheckOnly

このオプションを指定すると,実行可能ファイルを生成しないため,コンパイル速度が向上します。単にエラーチェックだけをしたい場合に指定します。

-Compile,NoLink

オブジェクトファイルは出力しますが,実行可能ファイルは生成しません。出力したオブジェクトファイルは,あとでリンカを使用して実行可能ファイルにできます。

-noCompile

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

(c) 注意事項

  • -Compileオプションを指定した場合,-OutputFileオプションの指定は無効となります。

    また,-Compile,CheckOnlyオプションを指定した場合,アプリケーションデバッグ機能に関連するオプション(-DebugInf,-DebugCompati,-DebugData,-TDInf,-CVInf,-DebugRange,または-TestCmdオプション)が指定されても,無効となります。

  • -Compile,CheckOnlyオプションを指定した場合,-PICオプション,-Profileオプション,-IdentCallオプションが指定されても無効となります。

(2) -OutputFileオプション

(a) 形式

-OutputFile ファイル名
-noOutputFile

(b) 機能

-OutputFile ファイル名

生成する実行可能ファイルの名称を指定します。

ファイル名には,生成する実行可能ファイルの名称を指定します。

このオプションの指定がない場合,実行可能ファイルの名称は,a.outとなります。

実行可能ファイルをカレントディレクトリに出力する場合の指定例を,次に示します。

(例)
ccbl2002 -OutputFile TEST1 -Main,System source.cbl

実行可能ファイルは,TEST1という名称で出力されます。

実行可能ファイルを任意のディレクトリに出力する場合の指定例を,次に示します。

(例)
ccbl2002 -Main,System TEST1.cbl -OutputFile /usr/user1/TEST1.out

実行可能ファイルは,/usr/user1ディレクトリにTEST1.outという名称で出力されます。パスプレフィックスの指定が省略された場合,実行可能ファイルは,カレントディレクトリに出力されます。

-OutputFileオプションと-Compileオプションを同時に指定した場合,-OutputFileオプションは,無効となります。

-noOutputFile

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

(3) -Linkオプション

(a) 形式

-Link オプションの並び
-noLink

(b) 機能

-Link オプションの並び

リンカに渡すオプションの並びを指定します。オプションとオプションの間は,空白で区切ります。

-noLink

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

(c) 注意事項

  • -Linkオプション以降の文字は,ほかのオプション名,ファイル名なども含めすべてリンカに渡されます。したがって,このオプションは最後に指定してください。

  • -Linkオプションは,-Detailsオプションでのコンパイラオプションの詳細情報表示の対象にはなりません。

  • -Linkオプションに指定した文字列は,そのままccコマンドに渡されるため,指定するリンカオプションは,ccコマンドのオプションとなります。ただし,OSがAIXでCコンパイラが組み込まれていない場合は,ldコマンドが直接起動されます。この場合,-Linkオプション以降の文字列には,ldコマンドのオプションを指定してください。

(5) -OldLinkOpt,GCBypassオプション(AIXで有効)

(a) 形式

-OldLinkOpt,GCBypass
-noOldLinkOpt

(b) 機能

-OldLinkOpt,GCBypass

翻訳とリンクを同時に行う場合,静的な参照関係のないオブジェクトをリンク対象とするため,ccbl2002コマンドで-bgcbypassリンカオプションを仮定します。

-noOldLinkOpt

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

(c) 注意事項

  • 動的なリンクによるプログラム呼び出しを使用している場合,COBOL2002 V4より前に作成したCOBOLオブジェクトやCプログラムのオブジェクト中のプログラムを呼び出し先に指定すると,参照関係のないオブジェクトがリンク対象とならないでプログラムの呼び出しに失敗することがあります。

    COBOL2002 V4より前に作成したCOBOLオブジェクトやCプログラムのオブジェクトを混在させる場合は,このオプションを指定してください。

  • このオプションの指定によって,-bgcbypassリンカオプションの対象を適切にするためには,ccbl2002コマンドで,COBOLソース,オブジェクトファイル,アーカイブファイル,-lリンカオプションで指定するライブラリの順に指定する必要があります。

    -bgcbypassリンカオプションの対象が適切になる例

    ccbl2002 -OldLinkOpt,GCBypass -OutputFile TEST01 -Main,System TEST01.CBL TEST02.o libTEST03.a -L/TEST/LIBRRY -lTEST04

    -bgcbypassリンカオプションの対象が適切にならない例

    ccbl2002 -OldLinkOpt,GCBypass -OutputFile TEST01 -Main,System TEST01.CBL libTEST03.a -L/TEST/LIBRRY -lTEST04 TEST02.o

  • 翻訳とリンクを別に行う場合は,リンク(cc/ldコマンド)時に-bgcbypassリンカオプションを指定する必要があります。