[C++ リンカ]
ビルド への移動
プロジェクト > オプション... > ビルド > C++ リンカ
このダイアログ ボックスを使用して、C++ のリンカ オプションを設定します。
オプション | 説明 |
---|---|
[ターゲット]、[適用...]、[保存...] |
「[ターゲット]オプション」を参照。 |
共通項目 |
リンク オプション
リンク オプション | 説明 | リンカ スイッチ | ||||
---|---|---|---|---|---|---|
ILINK32 | ILINK64 | ld(iOS) | ld(Android) | |||
[インクリメンタル リンクを無効にする] |
リンカ ステート ファイルを生成せず、インクリメンタル リンクを無効にします。 [インクリメンタル リンクを無効にする]オプションを指定した後のリンクは、最初のリンクと同程度の時間がかかるようになります。 |
-Gn | -Gn | プラットフォーム未サポート | プラットフォーム未サポート | |
[リンク所要時間を表示] |
リンカ出力に、リンク完了に必要な時間量を入れます。 |
-t | -t | プラットフォーム未サポート | プラットフォーム未サポート | |
[完全なデバッグ情報] |
C++Builder 統合デバッガによるアプリケーションのデバッグに必要な情報を出力ファイルに入れます。 コマンドラインでこのオプションを使用すると、デバッグ情報を持つオブジェクト モジュールすべてに対して TDS ファイルにデバッグ情報が含まれます。 -v+ および -v- オプションを使用すると、デバッグ情報を取り込むかどうかをモジュールごとに指定できます(-v と同じコマンドラインには指定できません)。 たとえば、次のコマンドには、モジュール
デフォルト値は[false]です。
|
-v | -v | -S | -S | |
[.drc ファイルを生成] |
LINK32 は Delphi 互換の .RC ファイル(.drc ファイル)を生成します。 .drc ファイルには実行可能ファイルと同じ名前が付けられ、実行可能ファイルと同じディレクトリに出力されます。 |
-GD | -GD | プラットフォーム未サポート | プラットフォーム未サポート | |
[シンボル ファイル (.map) を生成] |
マップ ファイルを .\OutputFolder\ProjectName.map に生成します。 デスクトップ プラットフォームの場合、マップ ファイルに関するオプションは[C++ リンカ|出力]ページで指定します。 |
N/A | N/A | -map(有効ではありません) | -Map(有効ではありません) | |
[インポート ライブラリを生成] |
パッケージまたは .dll のエクスポートを記述するインポート ライブラリ(小さい静的ライブラリ)を生成します。これにより、別のアプリケーションとリンクできます。 このファイルは、動的ライブラリのリンク時に使用されます。インポート ライブラリがなければ、C++ でパッケージを使用できません。 インポート ライブラリ ファイルの拡張子は次のとおりです。
C++ パッケージの場合のみ有効です。
|
-Gi | -Gi | プラットフォーム未サポート | プラットフォーム未サポート | |
[静的パッケージ ライブラリ (.lib) を生成] |
静的にリンク可能なパッケージ ライブラリを生成します。 C++ の静的パッケージ ライブラリ(.lib)をビルドする場合は、動的ライブラリ(.bpl)のビルドに使用される .obj とは異なる一連の .obj が必要になります。 このオプションが有効な場合(デフォルト設定)、build または make コマンドにより次の 2 種類の .obj 群が生成されます。
静的ライブラリ(.lib)用の .obj ファイルは、ユーザーのプロジェクト ディレクトリに作成されたサブディレクトリ(一般に このオプションが無効な場合、ビルド コマンドまたはメイク コマンドでは動的ライブラリ(.bpl)のみ生成されます。 詳細については、「静的パッケージのビルド」を参照。 C++ パッケージの場合のみ有効です。 デフォルト値は[true]です。 |
-Gl | -Gl | プラットフォーム未サポート | プラットフォーム未サポート | |
[出力ファイルの保持] |
出力ファイルを保持するようにリンカに通知します。これを指定しないと、出力ファイルはエラーの発生時に削除されます。リンカは、リンクにエラーがある場合に出力ファイル(EXE/DLL)を削除するように動作が変更されています。従来の動作ではこのようなファイルをそのまま残し、削除しませんでした。
|
-Gk | -Gk | プラットフォーム未サポート | プラットフォーム未サポート | |
[動的 RTL とリンクする] |
C RTL をランタイム ライブラリ(cc3290.dll)を使って動的にリンクするか、(または、静的にリンクするか)を指定します。 |
N/A | N/A | N/A | N/A | |
[Delphi ランタイム ライブラリ |
アプリケーションに次の要素がリンクされていることを確認します。
C++ は Delphi RTL とリンクします(このオプションが有効であるか、プロジェクトに密接に関連したフレームワークがある場合)。たとえば、FMX Forms プロジェクトは、密接に関連したフレームワークに基づいて、Delphi RTL をリンクします。 このオプションを使用する対象は、Delphi RTL パッケージ(SysUtils、Classes、IOUtils など)内のユニットで公開されている一部の機能にアクセスする、または一部の Delphi 型(UnicodeString、Variant など)を使用し、フレームワークとの密接な関係がない、任意の C++ アプリケーションです。 [新規コンソール アプリケーション]ウィザード(C++)でアプリケーションを作成したとき、このオプションが有効でないか、フレームワークを選択しない場合、C++ コンソール アプリケーションでは、Delphi 例外を処理できません。 |
N/A | N/A | N/A | N/A | |
[リンク後に一時リンカ ファイル (.lnk) を削除] |
このオプションを指定すると、.\<出力フォルダ>\<プロジェクト名>.lnk の一時リンカ ファイルが削除されます。
|
N/A | N/A | N/A | N/A | |
[エラーの最大数を指定] |
エラー数(nn)を設定します。指定された数のエラーを検出すると、リンクを中止します。
|
-Enn | -Enn | プラットフォーム未サポート | プラットフォーム未サポート |
[詳細]オプション
[詳細]オプション | 説明 | リンカ スイッチ | |
---|---|---|---|
ilink32 | ilink64 | ||
[追加オプション] |
追加のリンカ オプションを入力します。 オプションについては、「ILINK32 - 32 ビット インクリメンタル リンカ」を参照してください。 |
N/A | N/A |
[リンク時に大文字と小文字を区別] |
リンカは、パブリック シンボルと外部シンボルの大文字と小文字を区別します。C および C++ は両方とも大文字と小文字を区別する言語なので、通常、このオプションは設定しておきます。
|
-c | -c |
[リンクの前にリンカ ステート ファイルをクリア] |
既存のインクリメンタル リンカ ステート ファイルを削除してから再作成し、リンクを続行します。このオプションを使用するとステート ファイルを更新できます。
|
-C | -C |
データ実行防止機能対応 |
実行可能イメージが Windows データ実行防止機能互換かどうかを示します。 |
-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 で使用されます。 |
-Gz | -Gz |
大きなアドレスの有効化 |
オブジェクトが、2 GB より大きいアドレスをサポートするかを示します。 |
-GF:LARGEADDRESSAWARE | |
[TLS の高速化] |
TLS(スレッド ローカル ストレージ)を共有するメカニズムを使用する代わりに、Windows から TLS を割り当てます。 |
-Gt | -Gt |
[ファイルのアラインメント] |
実行可能ファイル内のコードとデータのページ アラインメントを指定します。リンカは、さまざまなオブジェクトやセクション(コードやデータなど)をファイルに書き込む場合に、ファイル アラインメント値を使用します。たとえば、デフォルト値 0x200 を使用すると、実行可能ファイル内の 512 バイト境界にイメージ セクションが保存されます。 このオプションを使用する場合、2 の累乗のファイル アラインメント値を指定する必要があります(最小値は 16)。下位互換性のために、古い形式のオプション( コマンドライン用のこのオプション( |
-Af | -Af |
[オブジェクトのアラインメント] |
リンカはオブジェクト アライメント値を使用して、アプリケーションのさまざまなオブジェクトとセクション (コードやデータなど) の仮想アドレスを決定します。たとえば、オブジェクト アラインメント値として 8192 を指定すると、リンカはイメージ内のセクションの仮想アドレスを 8192 バイト (0x2000) 境界にアラインします。
このオプションを使用する場合、2 の累乗のオブジェクト アラインメント値を指定する必要があります。最小値はデフォルト値の 4096(0x1000)です。コマンドライン用のこのオプション( |
-Ao | -Ao |
[リソースを置換] |
既存のリソースを削除せずにリソースを追加または置換します。
|
-Rr | -Rr |
アドレス空間レイアウトのランダム化のサポート |
ASLR(アドレス空間レイアウトのランダム化)を使用して、読み込み時に DLL または実行可能イメージをランダムにリベースできるかどうかを指定します。 |
-GE:DYNAMICBASE=ON -GE:DYNAMICBASE=OFF | -GE:DYNAMICBASE=ON -GE:DYNAMICBASE=OFF |
高エントロピー 64 ビット アドレス空間レイアウトのランダム化 (ASLR 64 ビット) のサポート |
ASLR(アドレス空間レイアウトのランダム化)を使用して、読み込み時に DLL または実行可能イメージをランダムにリベースできるかどうかを指定します。 メモ: このフラグは、Win64 でのみ利用可能です。
|
-GE:HIGHENTROPYVA=ON -GE:HIGHENTROPYVA=OFF | |
ターミナル サーバー |
アプリがマルチユーザー環境で実行するように設計されていることを示します。 |
-GE:TSAWARE=ON -GE:TSAWARE=OFF | -GE:TSAWARE=ON -GE:TSAWARE=OFF |
[リンク時に詳細を表示] |
RLINK32 に詳細表示オプションを設定し、リソースのリンク時に詳細な情報を表示します。 |
-r | -r |
[追加でリンクされるライブラリ]
Additional Library | 説明 | リンカ スイッチ | ||||
---|---|---|---|---|---|---|
ilink32 | ilink64 | ld(iOS) | ld(Android) | |||
[追加オプション] Additionally linked libraries |
リストに指定されたライブラリをアプリケーションにリンクします。 ライブラリはコード名で指定します。 たとえば MIDAS にリンクするには、リストに "midas" を追加します。
|
プラットフォーム未サポート | プラットフォーム未サポート | -l | -l | |
[DBX InterBase とリンクする] |
dbExpress InterBase クライアント ライブラリとリンクします。 |
プラットフォーム未サポート | プラットフォーム未サポート | -lsqlib | -lsqlib | |
[Indy とリンクする] |
Indy ライブラリとリンクします。 |
プラットフォーム未サポート | プラットフォーム未サポート | -lIndyCore -lIndyProtocols -lIndySystem | -lIndyCore -lIndyProtocols -lIndySystem | |
[InterBase ToGo とリンクする] |
dbExpress InterBase ToGo クライアント ライブラリとリンクします。 |
プラットフォーム未サポート | プラットフォーム未サポート | -libtogo | -libtogo | |
[Midas とリンクする] |
MIDAS(DataSnap ライブラリ)とリンクします。 |
プラットフォーム未サポート | プラットフォーム未サポート | -lmidas | -lmidas | |
[正規表現ライブラリとリンクする] |
C++ 向けに変更された正規表現ライブラリ PCRE(Perl-compatible regular expressions)とリンクします。 |
プラットフォーム未サポート | プラットフォーム未サポート | -lpcre | プラットフォーム未サポート | |
[SQLite とリンクする] |
dbExpress SQLite クライアント ライブラリとリンクします。 |
プラットフォーム未サポート | プラットフォーム未サポート | -lsqlite3 | -lsqlite | |
[SSL および Crypto とリンクする] |
OpenSSL ライブラリとリンクします。 「iOS アプリケーションの作成」の「OpenSSL のサポート」セクションなどを参照。 |
プラットフォーム未サポート | プラットフォーム未サポート | -lssl -lcrypto | プラットフォーム未サポート | |
[ZLib とリンクする] |
ZLib 圧縮ライブラリとリンクします。 |
プラットフォーム未サポート | プラットフォーム未サポート | -lz | -lz | |
[サポートされている iOS の最小バージョン] |
アプリケーションがサポートする iOS の最小バージョンを定義します。 「FireMonkey プラットフォームに必要な準備」を参照してください。 |
プラットフォーム未サポート | プラットフォーム未サポート | -iphoneos_version_min | N/A | |
[使用するランタイムでエクスポート対象と想定されるシンボル] |
実行時に必要となるためエクスポートしなければならないシンボルのリストです。 |
プラットフォーム未サポート | プラットフォーム未サポート | -exported_symbol | プラットフォーム未サポート |
リンカ ヒープの設定
Win64
リンカ ヒープの設定 | 説明 | コマンドライン フラグ |
---|---|---|
コード ヒープ サイズ |
|
-GHcode=0xnnnn |
データ ヒープ サイズ |
|
-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 |