ILINK32

提供: Appmethod Topics
移動先: 案内検索

C++ リンカ への移動


ILINK32 は、オブジェクト モジュール(.OBJ ファイル)、ライブラリ モジュール(.LIB ファイル)、およびリソースをリンクして、実行可能ファイル(.EXE、.DLL、および .BPL ファイル)を生成します。ILINK32 は、この情報を保持する一連のリンカ ステート ファイルを作成し、保守します。このステート ファイルを使うことで、その後のリンクをインクリメンタルに行うことができ、リンクにかかる合計の時間を大幅に短縮できます。「リンカ ステート ファイル」と「デバッグ情報ファイル」を参照してください。

モジュール定義ファイル

モジュール定義ファイルは、Windows アプリケーションの内容やシステム要件に関する情報を ILINK32 に伝えるための ASCII テキスト ファイルです。モジュール定義ファイルは、IMPDEF.EXE を使って作成することができます。また、IMPLIB.EXE を使うと、モジュール定義ファイルからインポート ライブラリを作成することができます。

モジュール定義ファイルが指定されない場合、デフォルトは次のようになります。

CODE        PRELOAD MOVEABLE DISCARDABLE
DATA        PRELOAD MOVEABLE MULTIPLE  (for applications)
            PRELOAD MOVEABLE SINGLE    (for DLLs)
HEAPSIZE    4096
STACKSIZE   1048576

アプリケーションの属性をこれらデフォルトから変えるには、モジュール定義ファイルを作成する必要があります。

EXETYPE 文を削除した場合、リンカは、どの種類の実行可能ファイルを生成するのかを、コマンドラインで入力したオプションから判断することができます。

モジュール定義の IMPORTS セクションの代わりに、インポート ライブラリを含めることができます。

C および C++ ソース コードのエクスポート関数の定義で __declspec(dllexport) または _export キーワードを使用すると、EXPORTS セクションは不要になります。ただし、__declspec(dllexport) または _export を使って関数をエクスポートすると、その関数は序数ではなく名前でエクスポートされます。また、エクスポートする方法としては __declspec(dllexport) の方が好ましいことも覚えておいてください。

詳細は、「モジュール定義ファイル」を参照してください。

リンカ ステート ファイル

次のファイル拡張子を持つ 4 種類のリンカ ステート ファイルがあります。

  • .ILC(リンカ コード ファイル)
  • .ILD(リンカ データ ファイル)
  • .ILF(他のリンカ ファイル)
  • .ILS(リンカ シンボル ファイル)

これらの 4 種類のファイルはインクリメンタル リンクに必要です。

[プロジェクト|オプション...|C++ リンカページで、次のようにリンカ ステート ファイルを制御できます。

  • リンカ ステート ファイルの生成を無効にするには、[インクリメンタル リンクを無効にする]オプション(-Gn)をオンにします。
  • 次回のリンク操作の際に既存のリンカ ステート ファイルをクリアし新しく生成するには、[リンクの前にリンカ ステート ファイルをクリア]オプション(-C)をオンにします。

デバッグ情報ファイル

リンクの完了した最終的な実行可能ファイルにデバッグ情報を組み込む場合、ILINK32 は常にデバッグ情報を別個の TDS デバッグ ファイル(デフォルトでは <プロジェクト>.tds)に格納します。デバッガでは、このデバッガ情報ファイルを読み取れるはずです。ILINK32 では常にこのファイルを生成します。リンカ スイッチ -v(または /v)を設定しない場合は、デバッグ シンボル ファイルは無効になります。

DCC32.exe(Object Pascal コンパイラ)には、デバッグ シンボル ファイルを生成するためのコマンド ライン スイッチ(-VT)があります。[<プロジェクト名> のプロジェクト オプション]の[リンク]ページで[デバッグ情報を別個の TDS ファイルに保存する]を有効にすることで、デバッグ シンボル ファイルを生成するよう Object Pascal コンパイラに指定することもできます。

関連項目