C での静的変数リンク エラー
C コードをコンパイルするとき、特に Mac で、「静的変数リンク エラー」が発生することがあります。提供されたコード スニペットで報告されているものと同様です。このエラーは通常、外部 (*.cpp ファイル内) で適切に定義されていない静的変数を参照しようとしたときに発生します。
問題の原因
提供されたコードでは、静的変数「theString」が「Log.h」ヘッダー ファイルで宣言されていますが、定義されていません。静的変数には、メモリを予約して初期化するために、対応する *.cpp ファイルに外部定義が必要です。
解決策
リンク エラーを解決するには、次の定義を追加できます。図に示すように、「theString」を「Log.cpp」ファイルに追加します。以下:
// Log.cpp string Log::theString; // Define the static string here
追加の推奨事項
静的変数を外部で定義することに加えて、「using namespace std;」の使用を避けることもお勧めします。ヘッダーファイルにあります。この行為は名前空間の汚染につながり、将来的にコードのデバッグや保守が困難になる可能性があります。
以上がC コードで静的変数のリンク エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。