次の方法で共有


   LINK 入力ファイル

リンカには、オブジェクト、インポート ライブラリ、標準ライブラリ、リソース、モジュール定義、コマンド入力が入ったファイルが必要です。LINK では、ファイルの拡張子を使って内容を判断するわけではありません。LINK はそれぞれの入力ファイルを調べて、ファイルの種類を判断します。

LINK は、応答ファイルやオーダー ファイルのコメントの始めにセミコロン (または、そのほかの文字) を使いません。セミコロンがコメントの始めとして認識されるのはモジュール定義ファイル (.def) に限ります。

LINK は、以下の種類の入力ファイルを使います。

  • .obj ファイル
  • .lib ファイル
  • .exp ファイル
  • .def ファイル
  • .pdb ファイル
  • .res ファイル
  • .exe ファイル
  • .txt ファイル

リンカ入力としての .obj ファイル

LINK では、COFF (Common Object File Format) または 32 ビット OMF (Object Module Format) の .obj ファイルをリンクできます。Microsoft のコンパイラは COFF の .obj ファイルを作成します。

LINK は、32 ビット OMF オブジェクトを自動的に COFF に変換します。ただし、OMF から COFF への変換には制限があります。OMF は COFFで処理できないものを処理することができます。リンカが OMF から COFF に変換するときエラーがあると、リンカに対する入力として、OMF .obj ファイルではなく COFF .obj ファイルを使わなければなりません。

リンカ入力としての .lib ファイル

LINK では、COFF 標準ライブラリや COFF インポート ライブラリをリンクできます。通常、この 2 つのライブラリには拡張子 .lib が付きます。標準ライブラリにはオブジェクトが含まれ、LIB ツールで作成されます。インポート ライブラリにはほかのプログラムのエクスポートに関する情報が含まれており、エクスポートを含むプログラムをビルドするとき LINK で作成されるか、LIB ツールで作成されます。LIB を使った標準ライブラリまたはインポート ライブラリの作成方法については、「LIB Reference」を参照してください。LINK を使ったインポート ライブラリの作成方法の詳細については、「/DLL」を参照してください。

ライブラリは LINK に対して、ファイル名の引数または既定のライブラリとして指定されます。LINK が外部参照を解決する場合、まずコマンド ラインで指定されたライブラリ、次に /DEFAULTLIB オプションで指定された既定のライブラリ、さらに .obj ファイルの中の名前付き既定のライブラリを検索します。ライブラリ名を使ってパスを指定すると、LINK はそのディレクトリでライブラリを検索します。パスを指定しないと、まず LINK の実行元のディレクトリ、次に LIB 環境変数で指定されたすべてのディレクトリで検索します。

リンカ入力としての .exp ファイル

エクスポート (.exp) ファイルには、エクスポートされる関数やデータ項目に関する情報が含まれます。LIB がインポート ライブラリを作成するときは .exp ファイルも作成します。直接であれ間接であれ、ほかのプログラムへのエクスポートとほかのプログラムからのインポートの両方を行うプログラムをリンクするときは、.exp ファイルを使います。.exp ファイルとリンクすると、LINK はすでに LIB でインポート ライブラリが作成されているとみなし、インポート ライブラリを作成しません。.exp ファイルやインポート ライブラリの詳細については、「インポート ライブラリとエクスポート ファイルの操作」を参照してください。

リンカ入力としての .def ファイル

詳細については、「モジュール定義 (.def) ファイル」を参照してください。.def ファイルの名前を指定するには、/DEF オプションを使います。

リンカ入力としての .pdb ファイル

/Zi オプションを使ってコンパイルしたオブジェクト (.obj) ファイルには、プログラム データベース (PDB) の名前が記述されます。リンカに対して、オブジェクトの PDB ファイル名を指定しません。LINK は、PDB ファイルが必要になると、埋め込み名を使って PDB を検索します。これは、ライブラリに含まれるデバッグ可能なオブジェクトにも当てはまります。リンカは、デバッグ可能なライブラリのほか、そのライブラリの PDB も利用できることが必要です。

また、LINK は PDB を使い、.exe ファイルまたは .dll ファイルのデバッグ情報を保持します。LINK は プログラムをリビルドするとき PDB を更新するため、プログラムの PDB は出力ファイルにもなれば入力ファイルにもなります。

リンカ入力としての .res ファイル

プログラムのリンク時に .res ファイルを指定できます。この .res ファイルはリソース コンパイラ (RC) で作成します。LINK は .res ファイルを自動的に COFF に変換します。CVTRES.exe ツールは、LINK.exe と同じディレクトリか、PATH 環境変数で指定したディレクトリになければなりません。

リンカ入力としての .exe ファイル

MS-DOS Stub File Name (/STUB) オプションを使うと、MS-DOS で使える .exe ファイルの名前を指定できます。LINK は指定されたファイルを調べ、有効な MS-DOS プログラムであることを確認します。

リンカ入力としての .txt ファイル

LINK は追加入力としてさまざまなテキスト ファイルを予定しています。コマンドファイル指定子 (@) やベース アドレス (/BASE) オプション、/DEF オプション、/ORDER オプションはいずれもテキスト ファイルを指定します。こうしたファイルは、.txt に限らずどんな拡張子を付けてもかまいません。