リンカの警告(C++)

提供:RAD Studio (日本語)
移動: 案内, 検索

コマンドライン ユーティリティ:インデックス への移動



C++ リンカである ILINK32 から出力される警告は以下のとおりです。

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

{同等のコマンドライン オプションは -wexp} デフォルトで有効です。 public と宣言されていない関数をエクスポートしようとしている場合に、この警告が表示されます。

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

{同等のコマンドライン オプションは -wrty} デフォルトで有効です。 インクリメンタル リンクが失敗した場合に、この警告が表示されます。 この警告は、リンカでリンカ ステート ファイル(*.il?)の問題が発生したため完全リンクを実行していることを示します。

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

または

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

{同等のコマンドライン オプションは -wdup または -wdpl} -wdup はデフォルトで有効です。-wdpl はデフォルトで無効です。 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

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

{同等のコマンドライン オプションは -wnou} デフォルトで有効です。 ユニットが含まれていないパッケージを作成しようとした場合に、この警告が表示されます。

DLL を読み込めません 

{同等のコマンドライン オプションは -wuld} デフォルトで有効です。 DLL のリンク時に /B(イメージ ベース)スイッチが検出された場合に、この警告が表示されます。 ほとんどの場合、このエラーが発生するとアプリケーションを実行できません。

DLL からリロケーション情報を削除すると正常に機能しなくなる可能性があります

{同等のコマンドライン オプションは -wsrd} デフォルトで有効です。 DLL のリンク時に /B(イメージ ベース)スイッチが検出された場合に、この警告が表示されます。

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

{同等のコマンドライン オプションは -wdee} デフォルトで有効です。 実行可能ファイルが生成され .DLL または .BPL 拡張子のファイルとして保存された場合に、この警告が表示されます。 通常、このようなことになるのは、.DLL または .BPL をビルドするつもりであったが .DLL または .BPL ターゲットを指定し忘れた場合です。

セクション '