2011-01-20 28 views
0

C++ファイルにグローバル変数を定義しました。例えば:bool _variable =1;C++の未解決の外部シンボル

は、今私が使用してファイル++、他のC言語でこの変数を使用します。extern bool _variable

しかし、私はエラーerror LNK2001: unresolved external symbol "bool _variable" ([email protected]@3_NA)を取得しています。

このエラーを解決するにはどうすればよいですか?

+1

関連するコード部分を入力してください。 –

+0

あなたの環境に関する詳しい情報を提供してください(ビジュアルスタジオ、gccとmakefile ...)。 – UmmaGumma

+1

グローバルスコープ内の識別子の最初の文字として '_'を使用しないでください。 http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-ac-identifier –

答えて

4

これは、リンカは、このような変数の定義を見つけることができないことを意味します。

  • どこでも同じように書きましたか?

  • は確かです定義を含むC++ファイルをコンパイルして、あなたがこのようなエラーを取得しているとき、他の人とリンクされますか?

  • は、そのような変数が定義されている名前空間が同じであるあなたは確かにいますか?

+0

グローバルに宣言するときに名前空間がありません...そして他のファイルでは、先頭にextern bool _variableを使用しますが、その後は関数がこの変数を使用しようとしているネームスペースの内部にあります.....私は何をすべきか? – SPB

+0

@SPB: '_variable'は、それを定義するときと外部として宣言するときに、常に同じ名前空間で宣言されなければなりません。両方の宣言と定義が問題ではないグローバル名前空間で発生する場合 – peoro

+0

私はそれを解決した.....それは指定された3から2番目のオプションだった – SPB

1

(VSを使用していると仮定して)定義済みの変数を持つファイルをプロジェクトに含めるのを忘れたのかもしれません。

関連する問題