Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Ошибка компоновщика


Автор: mikiel 3.6.2006, 16:03
Привет!
У меня линкер выдает еррор:

Unresolved external "_Fnamе" referenced from Unit2.obj

Суть- у меня два модуля , хочу в одном видеть эту переменную, описываю ее в обработчике, где она нужна, как extern (Архангельский) и выдается эта ошибка. поясните кто знает!
плиз

пс. _Fname - та самая переменная   

Автор: BreakPointMAN 3.6.2006, 17:54
Ты бы код привел, как и что делаешь... а не на словах объяснял... 

Автор: mikiel 3.6.2006, 18:19
исправил.код ?какой именно тут код может помочь?
смысл был в том, чтобы описать обе переменных не в заголовочном файле, а в cpp.
 

Автор: Fazil6 3.6.2006, 19:00
Цитата

Unresolved external "_Fnamе" referenced from Unit2.obj

значит, что реально память под _Fnamе не была выделена нигде. 
С++ надо изучать не по Архангельскому.
Цитата

описываю ее в обработчике, где она нужна, как extern

чесно говоря, я не могу себе представить зачем локальную переменную функции объявлять extern.
Цитата

смысл был в том, чтобы описать обе переменных не в заголовочном файле, а в cpp.

только непонятно причем здесь extern. 
extern применяется для того, чтобы объявить(связать имя с типом) переменную с указанием  компилятору, что определение(выделение памяти) происходит в другом месте. Например, это используется для объявления в хедере глобальной переменной и подключения этого хедера в разные cpp, при этом в одном из этих cpp надо определить эту переменную.
В твоем случае линкер говорит, что определения этой переменной нет.

 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)