Что за ошибка error LNK2001???
От: Shergin Россия http://shergin.com/
Дата: 29.09.01 14:05
Оценка:
msvc++6 при компиляции выдаёт:

--------------------Configuration: nai — Win32 Debug--------------------
Compiling...
nai.cpp
Generating Code...
Compiling...
naiDlg.cpp
ListPic.cpp
Base.cpp
Generating Code...
Linking...
Base.obj : error LNK2001: unresolved external symbol "public: void __thiscall CItem::Empty(void)" (?Empty@CItem@@QAEXXZ)
Debug/nai.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

nai.exe — 2 error(s), 0 warning(s)

Что это значит? Что ему не понравилось?
Валентин Шергин
http://shergin.com/
Re: Что за ошибка error LNK2001???
От: Spini  
Дата: 29.09.01 14:33
Оценка:
Здравствуйте Shergin, вы писали:

S>msvc++6 при компиляции выдаёт:

S>Base.obj : error LNK2001: unresolved external symbol "public: void __thiscall CItem::Empty(void)" (?Empty@CItem@@QAEXXZ)
S>Что это значит? Что ему не понравилось?

гы-гы-гы...
Извиняюсь.... не удержался....
MSDN Troubleshooting LNK2001 or L2029 Unresolved External Errors ID: Q138400
Рекомендую....

гы-гы-гы....
_ATL_MIN_CRT forever !!!
Re[2]: Что за ошибка error LNK2001???
От: Shergin Россия http://shergin.com/
Дата: 29.09.01 17:58
Оценка:
Здравствуйте Spini, вы писали:

Не ну чего за ботва??? Мне конкретно кто-нибудь поможет?!

Кстати, что такое AFX?
Валентин Шергин
http://shergin.com/
Re: Что за ошибка error LNK2001???
От: IT Россия linq2db.com
Дата: 29.09.01 18:15
Оценка:
Здравствуйте Shergin, вы писали:

S>--------------------Configuration: nai — Win32 Debug--------------------

S>Linking...
S>Base.obj : error LNK2001: unresolved external symbol "public: void __thiscall CItem::Empty(void)" (?Empty@CItem@@QAEXXZ)
S>Debug/nai.exe : fatal error LNK1120: 1 unresolved externals

CItem твой класс? Это значит, что ты не определил метод Empty, но где-то его вызываешь.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Что за ошибка error LNK2001???
От: Shergin Россия http://shergin.com/
Дата: 29.09.01 18:28
Оценка:
Здравствуйте IT, вы писали:

IT>Здравствуйте Shergin, вы писали:


S>>--------------------Configuration: nai — Win32 Debug--------------------

S>>Linking...
S>>Base.obj : error LNK2001: unresolved external symbol "public: void __thiscall CItem::Empty(void)" (?Empty@CItem@@QAEXXZ)
S>>Debug/nai.exe : fatal error LNK1120: 1 unresolved externals

IT>CItem твой класс? Это значит, что ты не определил метод Empty, но где-то его вызываешь.


Извини, но, по-моему, ты не прав. Ошибка возникает на стадии связывания, а не компиляции.
Эта ошибка всегда возникает, если я пытаюсь использовать классы созданные в других моих программах. Что мне делать?
ЗЫ: Естественно и речи не идет что CItem::Empty() не определен.
Валентин Шергин
http://shergin.com/
Re[3]: Что за ошибка error LNK2001???
От: Spini  
Дата: 29.09.01 19:02
Оценка:
Hi Shergin, вы писали:

S>Извини, но, по-моему, ты не прав. Ошибка возникает на стадии связывания, а не компиляции.

S>Эта ошибка всегда возникает, если я пытаюсь использовать классы созданные в других моих программах. Что мне делать?
S>ЗЫ: Естественно и речи не идет что CItem::Empty() не определен.

Я извиняюсь за слишком эмоциональный ответ выше :o)), но просто у друга ;o) была эта ошибка недавно в ATL проекте

Все дело в том, что линкер не может "распознать" адрес функции.
Что за проект? Ошибка и на Release и на Debug версии?

Фишка в том, что "ссылка" на функцию есть в объектном файле, а реализации функции нет (_ОНИ_так_думают_). Похоже на то, что предположил IT. Свои DLL в проекте используешь? — помоему фишка в этом. или нет? Что значит "использовать классы созданные в других моих программах"?

Через форум тебе помочь мало реально (ИМХО). Еще раз говорю — чтобы понять причину ошибки посмотри MSDN

[ORIGINAL]
Frequent Causes of the "Unresolved External" Error Message
Missing Object Files or Libraries
Missing Function Body or Variable
Symbol Can't be Found in the Libraries or Object Modules
Case Sensitivity
Name Decoration — обрати внимание
A Symbol Is Not Public
Scoping Problems and Pure Virtual Functions
Function Inlining
Wrong Compiler Options or Mixing Incompatible Librar
Re[3]: Что за ошибка error LNK2001???
От: IT Россия linq2db.com
Дата: 29.09.01 19:18
Оценка:
Здравствуйте Shergin, вы писали:

S>>>--------------------Configuration: nai — Win32 Debug--------------------

S>>>Linking...
S>>>Base.obj : error LNK2001: unresolved external symbol "public: void __thiscall CItem::Empty(void)" (?Empty@CItem@@QAEXXZ)
S>>>Debug/nai.exe : fatal error LNK1120: 1 unresolved externals

IT>>CItem твой класс? Это значит, что ты не определил метод Empty, но где-то его вызываешь.


S>Извини, но, по-моему, ты не прав. Ошибка возникает на стадии связывания, а не компиляции.


Может и не прав. Что бы сказать точно, нужно видеть твой проект. То что это линковщик я тоже вижу и так же вижу причину ошибки: нет такой функции. Она может и есть, но линковщик её не видит. Может быть ты компилируешь модули с разными опциями, может это тот глюк VS, который лечится просто перекомпиляцией всего проекта с предварительным удалением *.pch, может ещё что-то.

S>Эта ошибка всегда возникает, если я пытаюсь использовать классы созданные в других моих программах. Что мне делать?


Это пожалуй надо расшифровать, если речь идёт о dll, то теюе сюда — Использование DLL в программе на Visual C++
Автор(ы):
Александр Шаргин


В статье рассматривается три способа подключения DLL к программе на Visual C++ — неявное подключение (implicit linking), явное подключение (explicit linking) и отложенная загрузка (delayed load) DLL. Для каждого способа демонстрируется использование переменной, функции и класса из подключаемой DLL. В разделе об отложенной загрузке также приводится дополнительная информация (описание обработки исключений и использования функций-ловушек).
.
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Что за ошибка error LNK2001???
От: Shergin Россия http://shergin.com/
Дата: 29.09.01 19:52
Оценка:
Какие dll’ки?! Простые *.h’ки и *.cpp’ки!!! Что самое и обидное! Просто написал программу, потом захотел кардинально переделать интерфейс, создал новый проект, скопировал туда файлы классов, написал #include “base.h”… А он мне такое!..
Валентин Шергин
http://shergin.com/
Re[3]: Что за ошибка error LNK2001???
От: Андрей Тарасевич Беларусь  
Дата: 29.09.01 20:34
Оценка:
Здравствуйте Shergin, вы писали:

S>>>--------------------Configuration: nai — Win32 Debug--------------------

S>>>Linking...
S>>>Base.obj : error LNK2001: unresolved external symbol "public: void __thiscall CItem::Empty(void)" (?Empty@CItem@@QAEXXZ)
S>>>Debug/nai.exe : fatal error LNK1120: 1 unresolved externals

IT>>CItem твой класс? Это значит, что ты не определил метод Empty, но где-то его вызываешь.


S>Извини, но, по-моему, ты не прав. Ошибка возникает на стадии связывания, а не компиляции.

S>Эта ошибка всегда возникает, если я пытаюсь использовать классы созданные в других моих программах. Что мне делать?
S>ЗЫ: Естественно и речи не идет что CItem::Empty() не определен.

Вот именно то, что ошибка происходит на стадии линковки означает то, что метод не определен. Если бо он не был объявлен, тогда ошибка возникла бы на стадии компиляции, а не линковки. В твоем же случае метод объявлен, поэтому компилятор молчит, но определения метода нет — поэтому линкер ругается.
Best regards,
Андрей Тарасевич
Re[5]: Что за ошибка error LNK2001???
От: Андрей Тарасевич Беларусь  
Дата: 29.09.01 20:37
Оценка:
Здравствуйте Shergin, вы писали:

S>Какие dll’ки?! Простые *.h’ки и *.cpp’ки!!! Что самое и обидное! Просто написал программу, потом захотел кардинально переделать интерфейс, создал новый проект, скопировал туда файлы классов, написал #include “base.h”… А он мне такое!..


Найди файл с определением этого метода и посмотри, подключен ли он к проекту. Если не сложно, приведи тут определение твоего класса и определение этого конкретного метода.
Best regards,
Андрей Тарасевич
Re[6]: Вопрос закрыт. Я кретин...
От: Shergin Россия http://shergin.com/
Дата: 30.09.01 17:04
Оценка:
Здравствуйте Андрей Тарасевич, вы писали:

АТ>Найди файл с определением этого метода и посмотри, подключен ли он к проекту. Если не сложно, приведи тут определение твоего класса и определение этого конкретного метода.


Так оно и есть... =)
Валентин Шергин
http://shergin.com/
Re[7]: Вопрос закрыт. Я кретин...
От: IT Россия linq2db.com
Дата: 30.09.01 17:33
Оценка:
Здравствуйте Shergin, вы писали:

S>Так оно и есть... =)


;) Странно, а что тогда Base.cpp в твоём первом постинге?

S>--------------------Configuration: nai — Win32 Debug--------------------

S>Compiling...
S>nai.cpp
S>Generating Code...
S>Compiling...
S>naiDlg.cpp
S>ListPic.cpp
S>Base.cpp
S>Generating Code...
S>Linking...
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Вопрос закрыт. Я кретин...
От: Shergin Россия http://shergin.com/
Дата: 30.09.01 18:23
Оценка:
Здравствуйте IT, вы писали:

IT>Здравствуйте Shergin, вы писали:


S>>Так оно и есть... =)


IT>) Странно, а что тогда Base.cpp в твоём первом постинге?


S>>--------------------Configuration: nai — Win32 Debug--------------------

S>>Compiling...
S>>nai.cpp
S>>Generating Code...
S>>Compiling...
S>>naiDlg.cpp
S>>ListPic.cpp
S>>Base.cpp
S>>Generating Code...
S>>Linking...

Base.cpp это не то!
Вот еслиб там было Item.cpp ...
Забей! Теперь то все работает!
Валентин Шергин
http://shergin.com/
Re[9]: Вопрос закрыт. Я кретин...
От: Spini  
Дата: 30.09.01 18:58
Оценка:
Здравствуйте Shergin, вы писали:

S>Забей! Теперь то все работает!


Да здравствуют простые выходы из тупиковых ситуаций!

гы-гы-гы....
_ATL_MIN_CRT forever !!! ;o))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.