2 / 2 / 0
Регистрация: 19.11.2016
Сообщений: 28
|
||||||||||||||||
1 | ||||||||||||||||
Ошибка Undefined Reference, связанная с использованием шаблона18.10.2017, 15:08. Показов 1685. Ответов 3
Здравствуйте! У меня появилась проблема. Есть три файла: main.cpp, a.h, a.cpp. В а.h объявлен шаблон класса А и обычный класс B, в a.cpp реализованы оба (вроде всё должно быть в порядке). В main.cpp подключён заголовочный файл a.h, также там есть попытка использовать шаблонный класс из a.h. Компилятор выдаёт ошибку "undefined reference". При этом использовать класс B можно без проблем. В чём прикол?
Вот код: main.cpp:
0
|
18.10.2017, 15:08 | |
Ответы с готовыми решениями:
3
Странная ошибка: [Linker error] undefined reference to `__dyn_tls_init_callback' [Linker error] undefined reference to ld returned 1 exit status Ошибка undefined reference to Ошибка undefined reference ошибка undefined reference to |
Модератор
13721 / 10918 / 6478
Регистрация: 18.12.2011
Сообщений: 29,147
|
||||||
18.10.2017, 15:21 | 2 | |||||
Шаблоны нельзя компилировать отдельно.
Пишите:
1
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|||||||||||
18.10.2017, 15:44 | 3 | ||||||||||
Сообщение было отмечено NovikovDen как решение
Решение
NovikovDen, потому что шаблоны нельзя отделять в другие единицы трансляции. Проще всего разместить все шаблоны в заголовочный файл, где они определены. Несколько сложнее - отключить компиляцию a.cpp (чтоб компилятор не пытался его скомпилировать отдельно), убрать из a.cpp
Но как уже понятно, результат будет мало отличаться от прямого написания кода в заголовочном файле.
2
|
2 / 2 / 0
Регистрация: 19.11.2016
Сообщений: 28
|
|
18.10.2017, 16:04 [ТС] | 4 |
Спасибо!
0
|
18.10.2017, 16:04 | |
18.10.2017, 16:04 | |
Помогаю со студенческими работами здесь
4
Ошибка undefined reference to Ошибка undefined reference to Ошибка undefined reference to ошибка undefined reference to `_imp___ZN2sf5Image12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE'| Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |