Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> error LNK2001: unresolved external symbol 
:(
    Опции темы
mrgloom
Дата 1.12.2011, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



пытаюсь вызвать метод класса из метода другого класса.

включаю хэдер

{файл class2.cpp}
 
#include "Class1.h"

void Class2::DoFunc()
{
    Class1 test;
    test.calculate();
}

при попытке объявления или использования методов первого класса получаю 
error LNK2001: unresolved external symbol

я так понимаю тут дело в линковке но .h файл я подключил, а .lib вроде как и не должен собираться.
я собираю dll-ку, а файл Class1.h находится в главном проекте.


PM MAIL   Вверх
baldina
Дата 1.12.2011, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



а файл class1.cpp подключил? в Class1.h поди только объявления находятся, а тело функций в class1.cpp, верно?
PM MAIL   Вверх
mrgloom
Дата 1.12.2011, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



а как его подключать явно?
обычно .h и .cpp сами по имени линкуются как мне кажется.
PM MAIL   Вверх
baldina
Дата 1.12.2011, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



именно что кажется.
все .cpp надо включать в проект явно. 
PM MAIL   Вверх
mrgloom
Дата 1.12.2011, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



всмысле продублировать включение *.cpp файла через студию?
(помоему в таком случае, его надо будет и физически продублировать).
т.е. видимость cpp файла у студии только в пределах проекта,а не солюшена?
не очень красивое решение.
PM MAIL   Вверх
baldina
Дата 1.12.2011, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(mrgloom @  1.12.2011,  15:36 Найти цитируемый пост)
продублировать включение *.cpp файла через студию

не продублировать, а включить
если файл уже есть в другом проекте в том же solution, надо сделать зависимость одного проекта от другого, но это скорее всего означает, что проект-донор эти статическая или динамическая библиотека

если покажете проект, можно будет сказать точнее
PM MAIL   Вверх
bsa
Дата 1.12.2011, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(mrgloom @  1.12.2011,  15:35 Найти цитируемый пост)
а файл Class1.h находится в главном проекте.

вот в этом вся и загвоздка. Когда ты собираешь dll, то она не знает о существовании главного проекта. В таких случаях все общие классы выделяют в отдельную dll и линкуют ее ко всем проектам.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.