モジュール module 内の symbol のエクスポートがユニット unit の symbol を参照している

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

C++ リンカ エラーと警告のメッセージ への移動

ユニットでない(#pragma package(smart_init) 指令がない)モジュールからシンボルをエクスポートしようとし、ユニット内のシンボルを参照しています。この参照は許されません。なぜならこのようなシンボルがあるとほかの誰かがそのインポートにリンクでき、そのインポートが呼び出されるとそのインポートがユニットコードを呼び出すことになるからです。エクスポートされた非ユニット関数のクライアントがそのユニットを参照しない場合、ユニットが初期化されることはありません。

解決策

このエラーを修正するには、#pragma package(smart_init) 指令を非ユニットに入れます。