[C++ リンカ|出力]

提供: RAD Studio
移動先: 案内検索

C++ リンカ への移動


プロジェクト > オプション... > C++ リンカ > 出力

このダイアログ ボックスでは、C++ リンカの出力オプションを設定します。

オプション 説明

[ターゲット]、[適用...]、[保存...]

[ターゲット]オプション」を参照。

共通項目

[プロジェクトのプロジェクト オプション]ページの共通項目」を参照。

[C++ リンカ|出力]オプションはすべてのプラットフォームでサポート: このページの大抵のオプションはすべての C++ リンカで共有されるため、すべてのサポートされているターゲット プラットフォームでサポートされます。 ただし、次の 2 つは例外です。

  • [イメージ フラグ](Windows プラットフォームでのみサポート)
  • [セクション フラグ](Windows プラットフォームでのみサポート)

以下に示すリンカ スイッチは、ILINK32 と ILINK64 の両方で使用できます。

マップ ファイル オプション 説明

[ベース アドレス]
(-b)

実行可能ファイルまたは DLL のイメージ ベース アドレスを指定します。 アプリケーションまたは DLL 内の最初のオブジェクトのロード アドレスが、このオプションで指定した数値に設定されます。 これに続くすべてのオブジェクトは、64 KB の連続したアドレス境界に配置され、内部フィックスアップは無視されます。 ただし、指定されたアドレスを使ってモジュールをロードできない場合、オペレーティング システムはデフォルトの設定に戻し、内部フィックスアップを適用します。 再配置テーブルは保持します。 値は 0x200 バイトすなわち 512 バイト境界の 16 進数または 10 進数で指定します。
デフォルト値 = 0x00400000

[ヒープ サイズ(最大)]
(-H)

予約ヒープ サイズを 16 進数または 10 進数で指定します。 最小許容値は 0 です。 このオプションで予約ヒープ サイズを指定すると、モジュール定義ファイルの HEAPSIZE 設定はすべて上書きされます。

デフォルト値 = 0x00100000

[ヒープ サイズ(最小)]
(-Hc)

コミットするヒープ サイズを 16 進数または 10 進数で指定します。 最小許容量は 0 で、指定する値はいずれも、[ヒープ サイズ(最大)]オプション以下でなければなりません。

このオプションでコミットするヒープ サイズを指定すると、モジュール定義ファイルの HEAPSIZE 設定はすべて上書きされます。

デフォルト値 = 0x00001000

32 ビット Windows プラットフォームおよび 64 ビット Windows プラットフォームでのみサポートされています。

[イメージのコメント文字列]
(-GC)

イメージ(.exe、.dll、.bpl など)の PE ファイル ヘッダーにあるオブジェクト テーブルの直後に挿入するコメントを指定します。 これらのコメントは、TDump や類似のツールを使って、イメージから読み出すことができます。

[イメージ記述]
(-D)

指定された説明が PE イメージに保存されます。

[イメージ フラグ]
(-GF)

イメージに対していくつかのフラグをセットできます。 サポートされているフラグは次のとおりです:

-GF:SWAPNET
-GF:SWAPCD
-GF:UNIPROCESSOR
-GF:LARGEADDRESSAWARE
-GF:AGGRESSIVESWAPNET
  • SWAPNET は、イメージがネットワーク ドライブ上にある場合に、イメージをローカル スワップ ファイルにコピーしてそこから実行するように OS に指示します。
  • SWAPCD は、イメージがリムーバブル メディア(たとえば CD、フロッピー、USB メモリ スティック)上にある場合に、イメージをローカル スワップ ファイルにコピーしてそこから実行するように OS に指示します。
  • UNIPROCESSOR は、マルチプロセッサ システムではこのアプリケーションを実行できないことを OS に伝えます。
  • LARGEADDRESSAWARE は、4G を超えるアドレスをアプリケーションが認識することを OS に伝えます。
  • AGGRESSIVE は、アプリケーションがアイドル状態のときにアプリケーションの作業セットを積極的に削除することを OS に許可します。 これは、メインのプロセスからできる限り外しておきたいスクリーン セーバーその他のプロセスに適したオプションです。

デフォルト値 = 指定なし

32 ビット Windows プラットフォームおよび 64 ビット Windows プラットフォームでのみサポートされています。

省略 ポップアップ ボタンは、 「[プロジェクトのプロジェクト オプション]ページの共通項目」で説明されています。

[マップ ファイルの種類]

[セグメントを含んだマップ ファイル]


マップ ファイルにはセグメントのみを含めます。-m-s、または -x のいずれも指定されていない場合です。 これがデフォルトの設定です。
[パブリック シンボル一覧付きのマップ ファイル](-m)
アプリケーション グメントの概要とパブリック シンボルのリストを 2 つ含むマップ ファイルを生成するようにリンカに指示します。

セグメントのリストでは、1 セグメント 1 行で、セグメントの開始アドレス、セグメント長、セグメント名、およびセグメント クラスが示されます。

パブリック シンボルは 2 つのリストに分けられ、そのうちの 1 つはアルファベット順で、もう 1 つはアドレスの昇順でシンボルを表示します。 絶対アドレスを持つシンボルには、タグ Abs が付いています。

パブリック シンボルのリストは、デバッグのときに便利です。 デバッガの多くがパブリック シンボルを使用しているので、デバッグ時にシンボル アドレスを参照できるためです。
[詳細なセグメント マップ](-s)
[パブリック シンボル一覧付きのマップ ファイル]オプションで作成したマップ ファイルに、詳細なセグメント マップを追加して、最も包括的なマップを作成します。 詳細なセグメント リストには、セグメント クラス、セグメント名、セグメント グループ、セグメント モジュール、およびセグメント ACBP 情報が含まれます。 同じセグメントが複数のモジュールに含まれる場合、各モジュールは別々の行に表示されます。
ACBP フィールドは、A(アラインメント)、C(組み合わせ)、B(大きさ)の属性を Intel の定義にしたがって 4 つのビット フィールドにコード化したものです。 ILINK32 では、次の 3 つのフィールドだけを使用します: A、C、B。 マップの ACBP の値は 16 進数で表示されます。 以下に示すフィールド値の論理和が、表示される ACBP 値になります。
フィールド - 値 - 説明
A(アライメント)

  • - 00 - 絶対セグメント
  • - 20 - バイトアラインメントのセグメント
  • - 40 - ワードアラインメントのセグメント
  • - 60 - パラグラフ アラインメントのセグメント
  • - 80 - ページアラインメントのセグメント
  • - A0 - 名前のない絶対記憶領域

C(組み合わせ)

  • - 00 - 組み合わせ不可
  • - 08 - パブリック シンボルを組み合わせるセグメント

B(大きさ)

  • - 00 - 64 KB より小さいセグメント
  • - 02 - 64 KB のセグメント

このオプションを使用すると、参照のないパブリック シンボルには、idle(未使用)フラグが付きます。 未使用シンボルとは、モジュール内でパブリックとして定義されているシンボルのうち、EXTDEF レコードから、またはリンクで取り込まれるその他のモジュールから参照されなかったもののことです。 たとえば、マップ ファイルのパブリック シンボル セクションから取り出した次の部分は、シンボル Symbol1 と Symbol3 がリンクされているイメージから参照されていないことを示しています。

0002:00000874 Idle Symbol1
0002:00000CE4 Symbol2
0002:000000E7 Idle Symbol3

[マップを生成しない](-x)デフォルト リンカ マップ ファイルの作成を行いません。 デフォルトでは、リンカはセグメントのリスト、プログラム開始アドレス、リンク中に発生した警告またはエラー メッセージなどの一般的なセグメント情報が入ったマップ ファイルを作成します。 この設定には、スイッチはありません。 [マップを生成しない]オプションを使用すると、このデフォルト マップ ファイルの作成を行いません。

[名前をマングルする]
(-M)

マップ ファイル内に完全名ではなく変形した C++ 識別子を出力します。 このオプションは、名前がどのように変形されているのかを把握するのに役立ちます(一部のユーティリティでは、変形名の入力が必要です)。
デフォルト = False

[OS バージョン]
(-V)

アプリケーションを実行する Windows のバージョン ID を指定します。 リンカは、.EXE のヘッダーのサブシステム バージョン フィールドに、この入力ボックスで指定した数字を設定します。

Windows のバージョン ID は、モジュール定義ファイル(.DEF ファイル)の SUBSYSTEM の部分にも設定できますが、.DEF ファイルの設定値は IDE またはコマンドラインで指定したバージョン ID によって上書きされます。

[OS バージョン]オプションを使用する場合、リンカは Windows のバージョン ID を指定した番号に設定します。 たとえば、4.0 と指定すると、.EXE ヘッダーのサブシステムのバージョン フィールドは、4.0(Windows 95 アプリケーションであることを示す)に設定されます。

[セクション フラグ]
(-GS)

[セクション フラグ]オプションを使用すると、名前付きイメージ セクションにフラグを追加できます。 このオプションは、指定のセクションの既存のフラグに対してフラグを追加します。 既定のフラグをセクションから削除することはできません。

使用できるフラグは次のとおりです。
E - 実行可能ファイル
C - コードを含む
I - 初期化済みデータを含む
R - セクションは読み取り可能
W - セクションは書き込み可能
S - セクションは共有
D - セクションは破棄可能
K - セクションをキャッシュしてはならない
P - セクションをページングしてはならない
デフォルト = フラグなし
省略 ポップアップ ボタンは、 「[プロジェクトのプロジェクト オプション]ページの共通項目」で説明されています。

[スタック サイズ(最大)]
(-S)

予約スタック サイズを 16 進数または 10 進数で指定します。 最小許容値は 4 K(0x1000)です。
このオプションで予約スタック サイズを指定すると、モジュール定義ファイルの STACKSIZE 設定はすべて上書きされます。
デフォルト = 0x00100000

[スタック サイズ(最小)]
(-Sc)

コミットするスタック サイズを 16 進数または 10 進数で指定します。 最小許容量は 4K(0x1000)で、指定する値はいずれも、[スタック サイズ(最大)]オプション以下でなければなりません。
このオプションでコミットするスタック サイズを指定すると、モジュール定義ファイルの STACKSIZE 設定はすべて上書きされます。
デフォルト = 0x00002000

[ユーザー バージョン]
(-U)

実行可能ファイルのバージョン ID を指定します。 リンカは、実行可能ファイルのヘッダーのユーザー バージョン フィールドを、指定した数字に設定します。
[ユーザー バージョン]オプションを使用する場合、リンカはアプリケーションのバージョン ID を指定した番号に設定します。 たとえば、4.0 と指定すると、実行可能ファイルのヘッダーのユーザー バージョン フィールドが 4.0 に設定されます。
デフォルト = 1.0

関連項目