[C++ リンカ]

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

[プロジェクト オプション]ダイアログ ボックス への移動


[プロジェクト|オプション...|C++ リンカ]

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

オプション 説明

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

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

共通項目

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


リンク オプション

リンク オプション 説明 リンカ スイッチ
ilink32 ilink64 xlink ld(iOS) ld(Android)

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

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

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

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

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

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

[完全なデバッグ情報]

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

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

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

ILINK32 mod1 -v+ mod2 mod3 -v- mod4

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

-v -v -v -S -S

[.drc ファイルを生成]

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

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

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

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

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

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

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

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

このファイルは、動的ライブラリのリンク時に使われます。インポート ライブラリがないと、C++ でこのパッケージを使用できません。

インポート ライブラリ ファイルの拡張子は次のとおりです。

メモ: このオプションは、C++ ダイナミックリンク ライブラリ プロジェクトの場合にしか表示されません。

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

-Gi -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 -Gl プラットフォーム未サポート プラットフォーム未サポート

[出力ファイルの保持]

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

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

[動的 RTL とリンクする]

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

N/A 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 N/A

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

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

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

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

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

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

[詳細]オプション

[詳細]オプション 説明 リンカ スイッチ
ilink32 ilink64 xlink ld(iOS) ld(Android)

[追加オプション]

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

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

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

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

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

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

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

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

[遅延読み込みする DLL]

遅延読み込みする DLL を指定します。DLL の遅延読み込みは、アプリケーションではめったに使用されない DLL に対して有効ですが、スタートアップ コストが高くなる可能性があります。遅延読み込みが指定された DLL は、DLL 内のエントリ ポイントが実際に呼び出されるまでは、読み込みも初期化もされません。遅延読み込みが指定された DLL に対しては RTL サポートがあり、ユーザーは必要でに応じてこれをフックして読み込み時のエラーを処理したり、遅延読み込みされたシステムの代わりの処理を行うことができます。「[<プロジェクト名> のプロジェクト オプション]ページの共通項目」の 参照 ポップアップ ボタンの説明を参照。

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

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

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

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

[TLS の高速化]

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

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

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

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

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

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

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

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

リンカは、オブジェクト アラインメント値を使用して、アプリケーション内のさまざまなオブジェクトやセクション(コードやデータなど)の仮想アドレスを指定します。たとえば、オブジェクト アラインメント値として 8192 を指定すると、8192 バイト(0x2000)の境界上にイメージ内のセクションの仮想アドレスが配置されます。

このオプションを使用する場合、2 の累乗のオブジェクト アラインメント値を指定する必要があります。最小値はデフォルト値の 4096(0x1000)です。コマンドライン用のこのオプション(/Ao)では、オブジェクト アラインメント値として 10 進数または 16 進数のいずれかを受け付けます。
デフォルト値は[0x1000]です。

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

[リソースを置換]

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

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

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

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

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

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

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

ライブラリはコード名で指定します。 たとえば 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 プラットフォームに必要な準備」の「iOS の要件」セクションを参照。
デフォルト値は[5.1.0]です。

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

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

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

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

[子ページ]

関連項目