[C++ リンカ|警告]

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

[C++ リンカ] への移動


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

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

オプション 説明

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

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

共通項目

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

メモ: [警告]ページでは、ILINK32(32 ビット Windows)、ILINK64(64 ビット Windows)、XLINK(macOS)のみサポートしています。
オプション 説明

[すべての警告を無効にする]
(-w-)

すべての警告メッセージおよびエラー メッセージを無効にします。デフォルト値は[false]です。

[すべての警告を有効にする]
(-w)

すべての警告メッセージおよびエラー メッセージを表示します。デフォルト値は[false]です。

[選択した警告]

[True]に設定した警告のみが有効になります。[+]をクリックすると、ILINK32 の警告リストが表示されます。デフォルトは[True]です。

オプション デフォルト 説明 スイッチ

[非パブリック シンボルをエクスポートしようとしています]

オン

シンボル名がモジュール定義ファイルの EXPORTS セクションのリストに含まれていましたが、リンクされたモジュール内のパブリック シンボルにこの名前のものはありませんでした。

考えられる原因は以下のとおりです。

  • public と宣言されていない関数をエクスポートしようとしている。
  • 関数宣言では _export キーワードを指定したが、定義では指定しなかった、またはその逆。
  • スペルまたは大文字/小文字を間違えた。
  • 宣言したけれども定義していない手続きをエクスポートしようとしている。
  • 大文字/小文字を区別するエクスポートを使用する場合、Windows で使用される Pascal の呼び出し規約では、こうしたシンボルはすべて大文字でなければならない。

-wexp

[ユニットのないパッケージを作成しようとしています]

オン

ユニットを含まないパッケージを作成しようとしています。関連するユニットが Contains(含まれるもの)リストに含まれていることを確認してください (Contains リストは、パッケージにバインドするユニット ファイルを特定するためのものです)。

-wnou

[イメージが実行可能ファイルとしてリンクされましたが、拡張子が .DLL になっています]

オン

実行可能ファイルが生成され、拡張子が .DLL または .BPL のファイルに保存された場合に、この警告が出力されます。通常、この警告が発生するのは、.DLL または .BPL をビルドするつもりであったけれども、ターゲットに .DLL または .BPL を指定し忘れた場合です。

完全な警告メッセージは次のとおりです。

イメージが実行可能ファイルとしてリンクされましたが、拡張子が .DLL または .BPL になっています

-wdee

[パブリック シンボルが複数のライブラリで定義されています]

オフ

2 つの別個のライブラリでシンボルが重複している場合に、この警告が表示されます。

-wdup-wdpl は特別な処理が行われます。-wdup は、パブリック シンボルの重複に関する警告の主制御を行うものと見なすことができます。この警告を無効にすると、パブリック シンボルの重複に関するメッセージは出力されません。-wdpl は、ライブラリ モジュールからリンクされているパブリック シンボルが重複している場合に警告を出力するかどうかを制御します。-wdpl が無効で -wdup が有効な場合は、リンカ コマンド ラインで指定された OBJ ファイルからリンクされるパブリック シンボルの重複に関する警告のみが出力されます。-wdpl-wdup が両方とも有効な場合は、LIB ファイルからリンクされるモジュールに含まれているパブリック シンボルの重複に関する警告がリンカから出力されます。

現在、デフォルトで無効になっている警告は -wdpl だけです。そのため、コマンド ラインで警告オプションを指定しない場合は、以下のオプションを指定するのと同じことになります。

-w+exp -w+rty -w+dup -w-dpl -w+nou -w+srd -w+dee -w+dli -w+snf

完全な警告メッセージは次のとおりです。

パブリック シンボル '<シンボル>' がライブラリ モジュール <モジュール 1> と <モジュール 2> の両方に定義されています
パブリック シンボル '<シンボル>' がモジュール <モジュール 1> と <モジュール 2> の両方に定義されています

-wdup
-wdpl

[パブリック シンボルが複数のオブジェクト ファイルで定義されています]

オン

[セクションが見つかりません]

オン

指定されたセクションが見つからない場合に、この警告が表示されます。

完全な警告メッセージは次のとおりです。

セクション '<セクション>' が見つかりません

-wsnf

[DLL から再配置情報を削除すると正常に機能しなくなる可能性があります]

オン

DLL のリンク時に[ベース アドレス]オプションが設定されていると、この警告が表示されます。

完全な警告メッセージは次のとおりです。

DLL から再配置情報を削除すると正常に機能しなくなる可能性があります

-wsrd

[DLL を読み込めません]

オン

DLL のリンク時に[ベース アドレス]オプションが設定されていると、この警告が表示されます。ほとんどの場合、このエラーが発生するとアプリケーションを実行できません。

-wuld

[インクリメンタル リンクを実行できません]

オン

インクリメンタル リンクが失敗した場合に、この警告が表示されます。リンカは、ステート ファイル(projectname.IL*)のいずれかでエラーを検出したため、完全リンクを開始し、新しいステート ファイル セットを作成しました。

完全な警告メッセージは次のとおりです。

インクリメンタル リンクを実行できません - 完全リンクを実行中...

-wrty

関連項目