関連情報
形式
ld [–cVv]
[–b option[,option]…]…
[–e function]
[–f filename]…
[–L directory]…
[–l libname]…
[–O name[,name]…]
[–o outfile]
[–S syslibdset]…
[–u function]
[–x sidefile]
[file.o ] … [file.a ] … [file.x]… [–l libname] …
説明
ld ユーティリティーは外部参照を解決し、オブジェクト・ファイルと
アーカイブ・ファイルを結合して出力実行可能ファイルを作成します。 ld はプログラム管理バインダーを実行します。
トレース出力を z/OS UNIX ファイルに
エクスポートするには、_LD_DEBUG_TRACE 環境変数を使用します。
オプション
- -b option[,option]…
- バインダーに渡されるオプションを指定します。バインダーおよびそのオプションについて
詳しくは、「z/OS MVS プログラム管理: ユーザーズ・ガイドおよび解説書」を参照してください。指定されていない
バインダー・オプションは、バインダー・オプションに影響を与える ld オプションが
他に指定されていない限り、デフォルトのバインダーを使用します。
- –c
- 実際にはバインダーを実行せずに、疑似 -JCL を stdout に
書き込みます。疑似 -JCL はどのバインダー・オプションが渡されている
か、さらにどのデータ・セットが使用されているかに関する正確な情報を
提供します。
–v も参照してください。
- -e function
- プログラムのエントリー・ポイントとして使用される関数の名前を指定します。
-e オプションのデフォルト値は、環境変数 _LD_ENTRY_POINT の
設定に影響されます (「環境変数」を参照してください)。-e オプションが
指定されていないうえに _LD_ENTRY_POINT がヌルである場合、または function が
ヌルである場合は、バインダーのデフォルト規則によりプログラムのエントリー・ポイントが
判別されます。バインダーおよび ENTRY 制御ステートメントについて詳しくは、「z/OS MVS プログラム管理: ユーザーズ・ガイドおよび解説書」
を参照してください。
-O も参照してください。
- -f filename
- 入力として使用されるオブジェクト・ファイルおよびアーカイブ・ファイルの
名前のリストを含むファイルを指定します。オペランドとして指定された
ファイルに加えて、リストされたファイルも使用されます。
- -L directory
- これは、-l のオペランドで指定されたアーカイブ・ライブラリーを
検索するために使用されるディレクトリーを指定します。
このディレクトリーにおいて、指定の順序で検索が行われます。
その次に、_LD_LIBDIRS 環境変数で指定されているディレクトリー、またはこの環境変数のデフォルト・ディレクトリーにおいて、
検索が行われます。
MVS™ データ・セットをアーカイブ・ライブラリー・ディレクトリー
として指定することはできません。
- -l libname
- アーカイブ・ライブラリーの名前を指定します。ld は
、ファイル lib libname.a を -L オプション
で指定されたディレクトリーで探し、次に _LD_LIBDIRS 環境変数で
指定されたディレクトリー、またはデフォルトのディレクトリーで探します。アーカイブ・ライブラリーの最初のオカレンスが使用されます。
MVS データ・セットを指定することもできます。ライブラリー・ディレクトリーの検索の規則がないため、データ・セットの完全な名前を指定する必要があります。
指定するデータ・セットは、C370LIB オブジェクト・ライブラリーまたは
ロード・ライブラリーでなければなりません。ライブラリーとして指定されたデータ・セットのレコード・フォーマットが未定義 (U) である場合は、そのデータ・セットはロード・ライブラリーであると想定されます。オブジェクト・ライブラリー・ユーティリティーについては、「z/OS XL C/C++ ユーザーズ・ガイドz/OS XL C/C++ ユーザーズ・ガイド」を参照してくださ
い。
- -O name[, name]…
- 実行可能ファイルの先頭に位置づけられるコード・トピックの
名前を指定します。バインダー制御ステートメントの順序が生成されます。
環境変数 _LD_ORDER でデフォルト値の -O を
指定することができます (「環境変数」を参照してください)。
- -o outfile
- ld で作成される実行可能ファイルの名前を指定します。デフォルトの
出力ファイルは a.out です。
- -S syslibdset
- シンボルの解決に使用されるシステム・ライブラリー (SYSLIB) データ・セットの
名前を指定します。
- -u function
- 解決される外部シンボルのリストに追加する関数の名前
を指定します。このオプションは、唯一の入力がアーカイブ・ライブラリーで
ある場合に役立ちます。このオプションが指定されないと、外部シンボルは
追加されません。
- -V
- この詳細オプションはバインダー・リストを作成して、stdout に送信します。
- -v
- この詳細オプションにより、バインダーを実行する前に、疑似 JCL が stdout に
書き込まれます。これにより、どのバインダー・オプションが渡されている
か、さらにどのデータ・セットが使用されているかに関する正確な情報を
提供します。
- -X sidefile
- これは、ld が DLL (ダイナミック・リンク・ライブラリー) の生成時に書き込み先とする
サイド・デック・ファイルまたはデータ・セットの名前を指定します。
オペランド
- file.a
- 外部参照を解決するためにバインダーが使用するアーカイブ・ファイルの名前を
指定します。この名前は、ar コマンドで作成されたときのものです。ダブル
スラッシュ (//) の付いた名前を先行させることにより、MVS データ・
セット名を指定することができますが、その場合は、データ・セット名の最後の
修飾子は LIB でなければなりません。指定するデータ・セットは、C370LIB オブジェクト・ライブラリーまたは
ロード・ライブラリーでなければなりません。データ・セットをライブラリーとして
使用することについては、-l libname オペランドの説明を参照してください。
- file.o
- C/C++
ランタイム コンパイラーまたはアセンブラーにより生成された、リンク・エディット
されるオブジェクト・ファイルの名前を指定します。
ダブルスラッシュ (//) の付いたファイル名を先行させることにより、リンク・
エディットされる MVS データ・セット名を指定することができますが、その場合は
データ・セット名の最後の修飾子は OBJ でなければなりません。
区分データ・セットを指定している場合は、コンマでその間を区切って
複数のメンバー名を指定することができます。例えば、以下のとおりです。
ld //file.OBJ(mem1,mem2,mem3)
- file.x
- DLL (ダイナミック・リンク・ライブラリー) の作成時に ld で作成され、DLL を使用するアプリケーションのリンク時に ld に使用される定義サイド・デックの名前を指定します。サイド・デック処理について
詳しくは、「z/OS MVS プログラム管理: ユーザーズ・ガイドおよび解説書」を参照してください。
ダブルスラッシュ (//) の付いたファイル名を先行させることにより、MVS データ・
セット名を指定することができますが、その場合は、データ・セット名の最後の
修飾子は EXP でなければなりません。
区分データ・セットを指定している場合は、コンマでその間を区切って
複数のメンバー名を指定することができます。例えば、以下のとおりです。
ld //file.EXP(mem1,mem2,mem3)
使用上の注意
- ld コマンドに使用により生成されるメッセージは、「z/OS MVS システム・メッセージ 第 8 巻 (IEF-IGD)」に記載されています。
- ld は c89 コマンドのリンク・エディット・ステップと
同等の機能を提供します。ld は c89 のコンパイルおよび
アセンブリー・フェーズの機能を提供せず、またリンク・エディット・ステップの
リンク・エディット・フェーズ例外のステップも提供せずに、プログラム管理
バインダーを呼び出すのみです。さらに大きな違いとして、c89 の
デフォルト設定は、C/C++
ランタイム コンパイラーで
生成されたオブジェクト・ファイルを、Language Environment® で
実行するためにリンクするよう設計されていますが、ld のデフォルト設定は、コンパイラーや環境の前提事項を持たないため、
他のコンパイラーで生成されたオブジェクトや、Language Environment 以外の環境を対象とした
オブジェクトをリンクするために容易に使用できます。
ld のオプション、オペランド、または環境変数を
使用して、
c89 がデフォルトで作成する実行可能モジュールと互換性のある実行可能
モジュールを
ld に作成させることができます。
オプション/オペランド |
環境変数 |
c89 互換性の値 |
-e |
_LD_ENTRY_POINT |
CEESTART
または、AMODE 64 コードで使用する、
CELQSTRT
|
-O |
_LD_ORDER |
CEESTART
または、AMODE 64 コードで使用する、
CELQSTRT
|
-S |
_LD_SYSLIB |
//'CEE.SCEELKEX':
//'CEE.SCEELKED':
//'CBC.SCCNOBJ':
//'SYS1.CSSLIB'
またはインストールと同等の名前 |
-u |
_LD_EXTRA_SYMBOL |
CEEMAIN
または、AMODE 64 コードで使用する、
CELQMAIN
|
file.a |
_LD_OPERANDS |
//CEE.SCEEOBJ
|
- データ・セット名が指定される場合、引数はダブルスラッシュ(//) を先頭に持つデータ・セット名でなければなりません。単一引用符で
囲まれている名前は完全修飾名とみなされ、そのまま使用されます。
そうでない場合は、ピリオドを末尾に持つユーザー・ログイン名が
先頭に指定されます。
- ダッシュ (-) で始まるオペランドを指定できるようにするためには、
オプションの終わりの区切りを示す二重ダッシュ (--) を使用してください。
- シェルから ld を起動するときには、シェルにとって特別な
意味を持つ文字を含むオプションの引数またはオペランドは、エスケープする
必要があります。例えば、PDS メンバー名として指定されたソース・ファイルは括弧を含みます。
さらに、そのソース・ファイルは完全修飾名として指定された場合に単一引用符を含みます。
これらの特殊文字をエスケープするためには、オプションの引数またはオペランドを
二重引用符で囲むか、あるいは各文字の前に円記号を入れてください。
- オプションおよび引数は、読み取られた順序 (左から右) で処理され
ます。矛盾がある場合は、最後の指定が使用されます。引数を必要とする
オプションが二度以上指定されている場合は、最後の指定が使用されます。
以下に例外を示します。
- -b
- 指定された順序でバインダー・オプションを追加します
- -f
- -f オプションが検出されると各ファイルが処理されます
- -L
- 指定された順序でライブラリー・ディレクトリーを追加します
- -l
- -l オプションが検出されるとライブラリーが検索されます
- -S
- SYSLIB データ・セットは、指定された順序で付加されます。
すべてのオペランドは指定された順序で処理されます
- アーカイブ・ライブラリー・ファイルは、それらの名前が検出されたときに
検索されるため、-l オペランドおよび file.a オペランドの
配置が大切です。1 つのライブラリーをコマンド・ストリング上で
複数回指定しなければならない場合があります。これは、後の file.o ファイルの指定によって、そのライブラリーから追加のシンボルを解決する必要がある場合です。
- 以下の環境変数は実行される MVS プログラムの名前を指定し、
変数の長さは最長 8 文字です。STEPLIB 環境変数を使用して
必要に応じて検索順序を変更し、MVS プログラムを検索することができ
ます。STEPLIB 環境変数について詳しくは、「z/OS UNIX System Services 計画」のよく使われる環境変数に関するセクションを参照してください。これについては、sh コマンドの説明も参照してください。
- 以下の環境変数は、長さを 15 文字以内にする必要があります。これらの環境変数を設定するときにピリオド (.) は指定しないでください。
ピリオドを指定すると、これらの環境変数が、対応するオペランドと一致しなくなるためです。
- _LD_ASUFFIX
- _LD_ASUFFIX_HOST
- _LD_OSUFFIX
- _LD_OSUFFIX_HOST
- _LD_XSUFFIX
- _LD_XSUFFIX_HOST
- 以下の環境変数は、コロンで区切られたデータ・セットの名前として
構文解析され、データ・セットの連結またはデータ・セット・リストを表します。
- 以下の環境変数は MVS データ・セットの名前を指定します。長さは 44 文字以内にする必要があります。
- _LD_DEBUG_DUMP
- _LD_DEBUG_TRACE
- 以下の環境変数は、長さを 63 文字以内にする必要があります。
- _LD_NEW_DATACLAS
- _LD_NEW_DSNTYPE
- _LD_NEW_MGMTCLAS
- _LD_NEW_SPACE
- _LD_NEW_STORCLAS
- _LD_NEW_UNIT
- 以下の環境変数は SPACE パラメーターを指定するためのもので、すべてのコンマと小括弧を含めて、
以下に示す構文のみをサポートします (例: "(,(10,10,10))")。PRIMARY は
割り振られる 1 次トラックの数で、SECONDARY は 2 次トラックの数、DIRBLOCKS は
ディレクトリー・ブロックの数です。DIRBLKS はディレクトリー・ブロックが
必要ない場合にも指定する必要があります。
- 以下の環境変数は、DSNTYPE パラメーターを指定するために
使用し、LIBRARY または PDS サブパラメーターのみをサポートします (デフォルト
の LIBRARY の場合はヌル)。
- 以下の環境変数は、長さを 127 文字以内にする必要があります。
制約事項: これらの環境変数は DCB 情報の指定のためで、以下の
DCB サブパラメーターだけを注記の制限付きでサポートします。
- RECFM
- 正しくない値は無視されます。
- LRECL
- なし
- BLKSIZE
- なし
- DSORG
- 正しくない値は、あたかも値が指定されなかったかのように処理されます。
- 以下の環境変数は、ブランクで区切られたワードとして構文解析されます。したがって、組み込まれたブランクやホワイト・スペースは指定された値
としては
認められません。各ワードの最大長は 1024 文字です。
- _LD_LIBDIRS
- _LD_OPTIONS
- _LD_OPERANDS
ローカライズ
ld は、以下のローカライズ環境変数を使用します。
- LANG
- LC_ALL
- LC_CTYPE
- LC_MESSAGES
詳しくは、ローカライズを参照してください。
終了値
- 0
- 正常終了。
- >0
- 処理中にエラーが発生しました。