Форум программистов, компьютерный форум CyberForum.ru

Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
HardMorg
2 / 25 / 3
Регистрация: 29.08.2010
Сообщений: 204
01.04.2013, 00:59     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ #1
Что может быть не так?
есть файл test.h

C++
1
2
3
4
5
6
7
8
#ifndef _T_
#define _T_
 
template<class T>
class test {
//....
};
#endif
в нем описание класса
есть файл test.cpp
он реализовывает

#include "test.h"

...
есть main.cpp подключает test.h
когда использую обькет класса который обьявлен в файле test.h
main.obj : error LNK2019: ссылка на неразрешенный внешний символ
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2013, 00:59     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ
Посмотрите здесь:

Не могу разобраться где ошибка!error LNK2019: ссылка на неразрешенный внешний символ C++
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ C++
Ошибка линковщика(error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup) C++
C++ Структуры/Работа с файлами(ошибка линковщика error LNK2019: ссылка на неразрешенный внешний символ)
Ошибка error LNK2019: ссылка на неразрешенный внешний символ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,340
01.04.2013, 01:04     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ #2
На какой именно нерарешенный внешний символ? Если уж приводите сообщение об ошибке, то тогда уж приводите полностью.
HardMorg
2 / 25 / 3
Регистрация: 29.08.2010
Сообщений: 204
01.04.2013, 01:07  [ТС]     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ #3
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall test<double>::func(void)" (?func@?$test@N@@QAEXXZ) в функции _main

в маин вызываю метод func
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,340
01.04.2013, 01:24     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ #4
Похоже просто нет реализации метода func. Либо твоя реализация не соответствует объявлению этого метода в классе. Скинь код, если сам не поймешь.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
01.04.2013, 01:28     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ #5
Вы шаблонный класс вот так вот взяли и разделили на h и cpp?
Шаблон должен быть доступен во время инстанцирования
HardMorg
2 / 25 / 3
Регистрация: 29.08.2010
Сообщений: 204
01.04.2013, 01:32  [ТС]     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ #6
ну а разве он не доступен?
test.cpp

C++
1
2
3
4
5
6
#include "test.h"
 
template<class T>
void test<T>::func() {
 
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
01.04.2013, 01:34     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ #7
Цитата Сообщение от HardMorg Посмотреть сообщение
ну а разве он не доступен?
Объявление и реализацию в один фаил(h)
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,340
01.04.2013, 01:37     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ #8
HardMorg, Croessmah подсказал верное направление ошибки.
Короче, тебе либо придется сделать все в одной h файле - без cpp. Либо определять методы для конкретных типов данных шаблона.
HardMorg
2 / 25 / 3
Регистрация: 29.08.2010
Сообщений: 204
01.04.2013, 01:40  [ТС]     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ #9
Ладно спасибо, просто читал разделять обьявление и определение хороший тон...
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
01.04.2013, 01:50     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ #10
Цитата Сообщение от HardMorg Посмотреть сообщение
Ладно спасибо, просто читал разделять обьявление и определение хороший тон...
Для обычных классов, а не для шаблонных.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2013, 02:07     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ
Еще ссылки по теме:

Ошибка при написании класса: error LNK2019: ссылка на неразрешенный внешний символ C++
C++ Переопределение операции. Ошибка Error LNK2019: ссылка на неразрешенный внешний символ
C++ Ошибка при работе со структурами: error LNK2019: ссылка на неразрешенный внешний символ _main

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
HardMorg
2 / 25 / 3
Регистрация: 29.08.2010
Сообщений: 204
01.04.2013, 02:07  [ТС]     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ #11
Цитата Сообщение от Croessmah Посмотреть сообщение
Для обычных классов, а не для шаблонных.

Хм.. за вот это отдельное спасибо
Yandex
Объявления
01.04.2013, 02:07     Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ
Ответ Создать тему
Опции темы

Текущее время: 00:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru