[C++ リンカ]

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

ビルド への移動


プロジェクト > オプション... > ビルド > C++ リンカ

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

オプション 説明

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

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

共通項目

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


リンク オプション

リンク オプション 説明 リンカ スイッチ
ILINK32 ILINK64 ld(iOS) ld(Android)

[インクリメンタル リンクを無効にする]

リンカ ステート ファイルを生成せず、インクリメンタル リンクを無効にします。 [インクリメンタル リンクを無効にする]オプションを指定した後のリンクは、最初のリンクと同程度の時間がかかるようになります。
デフォルト = False

-Gn -Gn プラットフォーム未サポート プラットフォーム未サポート

[リンク所要時間を表示]

リンカ出力に、リンク完了に必要な時間量を入れます。
デフォルト値は[false]です。

-t -t プラットフォーム未サポート プラットフォーム未サポート

[完全なデバッグ情報]

C++Builder 統合デバッガによるアプリケーションのデバッグに必要な情報を出力ファイルに入れます。

コマンドラインでこのオプションを使用すると、デバッグ情報を持つオブジェクト モジュールすべてに対して TDS ファイルにデバッグ情報が含まれます。 -v+ および -v- オプションを使用すると、デバッグ情報を取り込むかどうかをモジュールごとに指定できます(-v と同じコマンドラインには指定できません)。

たとえば、次のコマンドには、モジュール mod2mod3 にはデバッグ情報が取り込まれますが、mod1mod4 には取り込まれません。

ILINK32 mod1 -v+ mod2 mod3 -v- mod4

デフォルト値は[false]です。

メモ: Windows 64 ビットの場合、デバッグ情報を別のファイルに分割して、リンカのメモリ使用量を減らすことができます。詳細については、「スプリット DWARF」を参照してください。
-v -v -S -S

[.drc ファイルを生成]

LINK32 は Delphi 互換の .RC ファイル(.drc ファイル)を生成します。 .drc ファイルには実行可能ファイルと同じ名前が付けられ、実行可能ファイルと同じディレクトリに出力されます。
デフォルト = False

-GD -GD プラットフォーム未サポート プラットフォーム未サポート

[シンボル ファイル (.map) を生成]

マップ ファイルを .\OutputFolder\ProjectName.map に生成します。
デフォルトでは、リンカによってプログラムの基本名に拡張子 .map を続けた名前がマップ ファイルに付けられます。
デフォルト = True

デスクトップ プラットフォームの場合、マップ ファイルに関するオプションは[C++ リンカ|出力]ページで指定します。

N/A N/A -map(有効ではありません) -Map(有効ではありません)

[インポート ライブラリを生成]

パッケージまたは .dll のエクスポートを記述するインポート ライブラリ(小さい静的ライブラリ)を生成します。これにより、別のアプリケーションとリンクできます。

このファイルは、動的ライブラリのリンク時に使用されます。インポート ライブラリがなければ、C++ でパッケージを使用できません。 インポート ライブラリ ファイルの拡張子は次のとおりです。

メモ: このオプションは、C++ 動的リンク ライブラリ プロジェクトに対してのみ現れます。

C++ パッケージの場合のみ有効です。
デフォルト値は[true]です。

-Gi -Gi プラットフォーム未サポート プラットフォーム未サポート

[静的パッケージ ライブラリ (.lib) を生成]

静的にリンク可能なパッケージ ライブラリを生成します。

C++ の静的パッケージ ライブラリ(.lib)をビルドする場合は、動的ライブラリ(.bpl)のビルドに使用される .obj とは異なる一連の .obj が必要になります。

このオプションが有効な場合(デフォルト設定)、build または make コマンドにより次の 2 種類の .obj 群が生成されます。

  • 動的ライブラリ(.bpl)の .obj は以下のコマンド ラインでビルドされます。


  • 静的ライブラリ(.lib)の .obj は以下のコマンド ラインでビルドされます。
    • BCC32 -U_RTLDLL;USEPACKAGES または
    • DCC32 -JPHN(C++ の .obj ファイルと .hpp ファイルを名前空間に生成)
  • どちらの種類のライブラリの場合も、TLIB ライブラリ マネージャにより、\bpilib ディレクトリに実際のライブラリが作成されます。

静的ライブラリ(.lib)用の .obj ファイルは、ユーザーのプロジェクト ディレクトリに作成されたサブディレクトリ(一般に \Debug\Win32\staticobjs ディレクトリ)に出力されます。ダイナミック ライブラリ(.bpl)用の .obj ファイルはユーザーのプロジェクト ディレクトリに出力されます。

このオプションが無効な場合、ビルド コマンドまたはメイク コマンドでは動的ライブラリ(.bpl)のみ生成されます。

詳細については、「静的パッケージのビルド」を参照。

C++ パッケージの場合のみ有効です。

デフォルト値は[true]です。

-Gl -Gl プラットフォーム未サポート プラットフォーム未サポート

[出力ファイルの保持]

出力ファイルを保持するようにリンカに通知します。これを指定しないと、出力ファイルはエラーの発生時に削除されます。リンカは、リンクにエラーがある場合に出力ファイル(EXE/DLL)を削除するように動作が変更されています。従来の動作ではこのようなファイルをそのまま残し、削除しませんでした。
デフォルト値は[false]です。

-Gk -Gk プラットフォーム未サポート プラットフォーム未サポート

[動的 RTL とリンクする]

C RTL をランタイム ライブラリ(cc3290.dll)を使って動的にリンクするか、(または、静的にリンクするか)を指定します。
デフォルト値は[true]です。

N/A N/A N/A N/A

[Delphi ランタイム ライブラリ
(rtl パッケージおよび cp32mt.lib/cp32mti.lib) とリンクする]

アプリケーションに次の要素がリンクされていることを確認します。

  • Delphi RTL パッケージ(rtl.lib または rtl.bpi)
  • memmgr.lib および sysinit.obj ユニット
  • Delphi RTL と互換性がある、C++ RTL(つまり cp32*.lib)

C++ は Delphi RTL とリンクします(このオプションが有効であるか、プロジェクトに密接に関連したフレームワークがある場合)。たとえば、FMX Forms プロジェクトは、密接に関連したフレームワークに基づいて、Delphi RTL をリンクします。 このオプションを使用する対象は、Delphi RTL パッケージ(SysUtils、Classes、IOUtils など)内のユニットで公開されている一部の機能にアクセスする、または一部の Delphi 型(UnicodeString、Variant など)を使用し、フレームワークとの密接な関係がない、任意の C++ アプリケーションです。

[新規コンソール アプリケーション]ウィザード(C++)でアプリケーションを作成したとき、このオプションが有効でないか、フレームワークを選択しない場合、C++ コンソール アプリケーションでは、Delphi 例外を処理できません。
デフォルト値は[false]です。

N/A N/A N/A N/A

[リンク後に一時リンカ ファイル (.lnk) を削除]

このオプションを指定すると、.\<出力フォルダ>\<プロジェクト名>.lnk の一時リンカ ファイルが削除されます。
デフォルト値は[true]です。

N/A N/A N/A N/A

[エラーの最大数を指定]

エラー数(nn)を設定します。指定された数のエラーを検出すると、リンクを中止します。
デフォルト値は[0]です。

-Enn -Enn プラットフォーム未サポート プラットフォーム未サポート

[詳細]オプション

[詳細]オプション 説明 リンカ スイッチ
ilink32 ilink64

[追加オプション]

追加のリンカ オプションを入力します。 オプションについては、「ILINK32 - 32 ビット インクリメンタル リンカ」を参照してください。

N/A N/A

[リンク時に大文字と小文字を区別]

リンカは、パブリック シンボルと外部シンボルの大文字と小文字を区別します。C および C++ は両方とも大文字と小文字を区別する言語なので、通常、このオプションは設定しておきます。
デフォルト値は[true]です。

-c -c

[リンクの前にリンカ ステート ファイルをクリア]

既存のインクリメンタル リンカ ステート ファイルを削除してから再作成し、リンクを続行します。このオプションを使用するとステート ファイルを更新できます。
デフォルト値は[false]です。

-C -C

データ実行防止機能対応

実行可能イメージが Windows データ実行防止機能互換かどうかを示します。
デフォルト = True

-GE:NXCOMPAT=ON -GE:NXCOMPAT=OFF -GE:NXCOMPAT=ON -GE:NXCOMPAT=OFF

[遅延読み込みする DLL]

遅延読み込みされる DLL を示します。DLL の遅延読み込みは、アプリケーションで使用される頻度は非常に低いが起動コストが高い可能性がある DLL に役立ちます。遅延読み込みされた DLL は、DLL のエントリ ポイントが実際に呼び出されるまで、読み込みおよび初期化されません。遅延読み込み DLL に対する RTL サポートもあり、ユーザーは、読み込み時のエラーを処理するためフックをかけ、必要に応じて、遅延読み込みシステムを置き換えることができます。「プロジェクト オプション ページの共通項目」にある 省略記号 ポップアップ ボタンの説明を参照してください。

-d -d

[イメージのチェックサムを計算し設定]

ターゲットのチェックサムを計算し、その結果をターゲットの PE ヘッダーに格納します。 これは、NT のカーネル モード ドライバとシステム DLL で使用されます。
デフォルト = False

-Gz -Gz

大きなアドレスの有効化

オブジェクトが、2 GB より大きいアドレスをサポートするかを示します。
デフォルト = False

-GF:LARGEADDRESSAWARE

[TLS の高速化]

TLS(スレッド ローカル ストレージ)を共有するメカニズムを使用する代わりに、Windows から TLS を割り当てます。
デフォルト値は[false]です。

-Gt -Gt

[ファイルのアラインメント]

実行可能ファイル内のコードとデータのページ アラインメントを指定します。リンカは、さまざまなオブジェクトやセクション(コードやデータなど)をファイルに書き込む場合に、ファイル アラインメント値を使用します。たとえば、デフォルト値 0x200 を使用すると、実行可能ファイル内の 512 バイト境界にイメージ セクションが保存されます。

このオプションを使用する場合、2 の累乗のファイル アラインメント値を指定する必要があります(最小値は 16)。下位互換性のために、古い形式のオプション(/A:dd)もサポートされます。このオプションを使用すると、ファイルアラインメント値は 10 進数 dd に 2 の累乗を乗じて求められます。

コマンドライン用のこのオプション(/Afxxxx)では、ファイル アラインメント値として 10 進数または 16 進数のいずれかを受け付けます。
デフォルト値は[0x200]です。

-Af -Af

[オブジェクトのアラインメント]

リンカはオブジェクト アライメント値を使用して、アプリケーションのさまざまなオブジェクトとセクション (コードやデータなど) の仮想アドレスを決定します。たとえば、オブジェクト アラインメント値として 8192 を指定すると、リンカはイメージ内のセクションの仮想アドレスを 8192 バイト (0x2000) 境界にアラインします。 このオプションを使用する場合、2 の累乗のオブジェクト アラインメント値を指定する必要があります。最小値はデフォルト値の 4096(0x1000)です。コマンドライン用のこのオプション(/Ao)では、オブジェクト アラインメント値として 10 進数または 16 進数のいずれかを受け付けます。
デフォルト値は[0x1000]です。

-Ao -Ao

[リソースを置換]

既存のリソースを削除せずにリソースを追加または置換します。
デフォルト値は[false]です。

-Rr -Rr

アドレス空間レイアウトのランダム化のサポート

ASLR(アドレス空間レイアウトのランダム化)を使用して、読み込み時に DLL または実行可能イメージをランダムにリベースできるかどうかを指定します。
デフォルト = True

-GE:DYNAMICBASE=ON -GE:DYNAMICBASE=OFF -GE:DYNAMICBASE=ON -GE:DYNAMICBASE=OFF

高エントロピー 64 ビット アドレス空間レイアウトのランダム化 (ASLR 64 ビット) のサポート

ASLR(アドレス空間レイアウトのランダム化)を使用して、読み込み時に DLL または実行可能イメージをランダムにリベースできるかどうかを指定します。
デフォルト = True

メモ: このフラグは、Win64 でのみ利用可能です。
-GE:HIGHENTROPYVA=ON -GE:HIGHENTROPYVA=OFF

ターミナル サーバー

アプリがマルチユーザー環境で実行するように設計されていることを示します。
デフォルト = True

-GE:TSAWARE=ON -GE:TSAWARE=OFF -GE:TSAWARE=ON -GE:TSAWARE=OFF

[リンク時に詳細を表示]

RLINK32 に詳細表示オプションを設定し、リソースのリンク時に詳細な情報を表示します。
デフォルト値は[false]です。

-r -r

[追加でリンクされるライブラリ]

Additional Library 説明 リンカ スイッチ
ilink32 ilink64 ld(iOS) ld(Android)

[追加オプション] Additionally linked libraries

リストに指定されたライブラリをアプリケーションにリンクします。

ライブラリはコード名で指定します。 たとえば MIDAS にリンクするには、リストに "midas" を追加します。

メモ: その他の詳細オプションでは、InterBase など一般的なライブラリにリンクすることができます。可能な場合には、ライブラリを追加リンクの代わりに、これらの他のオプションを使用してください。
プラットフォーム未サポート プラットフォーム未サポート -l -l

[DBX InterBase とリンクする]

dbExpress InterBase クライアント ライブラリとリンクします。
デフォルト値は[true]です。

プラットフォーム未サポート プラットフォーム未サポート -lsqlib -lsqlib

[Indy とリンクする]

Indy ライブラリとリンクします。
デフォルト値は[true]です。

プラットフォーム未サポート プラットフォーム未サポート -lIndyCore -lIndyProtocols -lIndySystem -lIndyCore -lIndyProtocols -lIndySystem

[InterBase ToGo とリンクする]

dbExpress InterBase ToGo クライアント ライブラリとリンクします。
デフォルト値は[true]です。

プラットフォーム未サポート プラットフォーム未サポート -libtogo -libtogo

[Midas とリンクする]

MIDAS(DataSnap ライブラリ)とリンクします。
デフォルト値は[true]です。

プラットフォーム未サポート プラットフォーム未サポート -lmidas -lmidas

[正規表現ライブラリとリンクする]
デフォルト値は[true]です。

C++ 向けに変更された正規表現ライブラリ PCRE(Perl-compatible regular expressions)とリンクします。
詳細は http://www.pcre.org を参照。
デフォルト値は[true]です。

プラットフォーム未サポート プラットフォーム未サポート -lpcre プラットフォーム未サポート

[SQLite とリンクする]

dbExpress SQLite クライアント ライブラリとリンクします。
デフォルト値は[true]です。

プラットフォーム未サポート プラットフォーム未サポート -lsqlite3 -lsqlite

[SSL および Crypto とリンクする]

OpenSSL ライブラリとリンクします。

「iOS アプリケーションの作成」の「OpenSSL のサポート」セクションなどを参照。
デフォルト値は[false]です。

プラットフォーム未サポート プラットフォーム未サポート -lssl -lcrypto プラットフォーム未サポート

[ZLib とリンクする]

ZLib 圧縮ライブラリとリンクします。
詳細は http://www.zlib.net を参照。
デフォルト値は[true]です。

プラットフォーム未サポート プラットフォーム未サポート -lz -lz

[サポートされている iOS の最小バージョン]

アプリケーションがサポートする iOS の最小バージョンを定義します。

FireMonkey プラットフォームに必要な準備」を参照してください。
デフォルト = 8.0

プラットフォーム未サポート プラットフォーム未サポート -iphoneos_version_min N/A

[使用するランタイムでエクスポート対象と想定されるシンボル]

実行時に必要となるためエクスポートしなければならないシンボルのリストです。

プラットフォーム未サポート プラットフォーム未サポート -exported_symbol プラットフォーム未サポート

リンカ ヒープの設定

Win64

リンカ ヒープの設定 説明 コマンドライン フラグ

コード ヒープ サイズ

code セクションのヒープ

-GHcode=0xnnnn

データ ヒープ サイズ

data セクションのヒープ

-GHdata=0xnnnn

Dwarf abbrev ヒープ サイズ

abbreviation コードのヒープ

-GHdwarf_abbrev=0xnnnn

Dwarf aranges ヒープ サイズ

アドレス範囲エントリのヒープ

-GHdwarf_aranges=0xnnnn

Dwarf info ヒープ サイズ

モジュールおよびシンプルなシンボル型のヒープ

-GHdwarf_info=0xnnnn

Dwarf line ヒープ サイズ

行番号情報のヒープ

-GHdwarf_line=0xnnnn

Dwarf loc ヒープ サイズ

ロケーション記述のヒープ

-GHdwarf_loc=0xnnnn

Dwarf macinfo ヒープ サイズ

マクロ情報のヒープ

-GHdwarf_macinfo=0xnnnn

Dwarf pubtypes ヒープ サイズ

公開シンボルの型のヒープ

-GHdwarf_pubtypes=0xnnnn

Dwarf ranges ヒープ サイズ

アドレス範囲のヒープ

-GHdwarf_ranges=0xnnnn

Dwarf str ヒープ サイズ

Dwarf 文字列のヒープ

-GHdwarf_str=0xnnnn

Win32

リンカ ヒープの設定 説明 コマンドライン フラグ

情報ヒープ サイズ

リンカ データ構造体のヒープ

-GHinfo

コード ヒープ サイズ

コードのヒープ

-GHcode

データ ヒープ サイズ

データのヒープ

-GHdata

RO データ ヒープ サイズ

読み取り専用データのヒープ

-GHrodata

未初期化データ ヒープ サイズ

初期化されていないデータのヒープ

-GHbss

TDS ヒープ サイズ

Turbo デバッガ シンボルのヒープ

-GHtds

[子ページ]

関連項目