.inl ファイルと .cpp ファイルがあり、.inl ファイルにはテンプレート関数が含まれており、以下のようにグローバル変数を宣言していました。
int グローバル値 = 0; そのプログラムをコンパイルした後にexternキーワードを使用して.cppファイルにリンクすると、エラーが発生しました
複数宣言エラー 最初にここで定義されたエラー
なぜこのエラーが発生するのか、誰かが私に提案できますか?
.inl ファイルと .cpp ファイルがあり、.inl ファイルにはテンプレート関数が含まれており、以下のようにグローバル変数を宣言していました。
int グローバル値 = 0; そのプログラムをコンパイルした後にexternキーワードを使用して.cppファイルにリンクすると、エラーが発生しました
複数宣言エラー 最初にここで定義されたエラー
なぜこのエラーが発生するのか、誰かが私に提案できますか?
要するに-cppファイルには、次のものがあります。
int global_value = 0;
inl ファイルには、次のものがあります。
extern int global_value;
グローバル変数は、1 つの翻訳単位 (cpp ファイル) でのみ宣言する必要があります。他のすべての翻訳単位はextern
、直接またはヘッダー ファイルを介して を使用する必要があります。あなたの場合、.inl ファイルを含むすべての翻訳は効果的にグローバルを宣言するため、エラーが発生します。したがって、cpp で宣言し、inl に配置extern
します (inl ファイルを他の cpp ファイルに含めると仮定します)。