2011-01-20 2 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-х указанных – SPB

1

Возможно, вы забыли включить файл с определенной переменной в проект (при условии, что используете VS).

Смежные вопросы