Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Последняя ошибка компоновщика

Ответить
Настройки темы
C/C++ - Последняя ошибка компоновщика

Аватара для ManHack

Старожил


Сообщения: 361
Благодарности: 6

Профиль | Отправить PM | Цитировать


Изменения
Автор: ManHack
Дата: 13-03-2011
Здравствуйте. Объясните пожалуйста что за ерунда такая:
Цитата:
1> Generating Code...
1>bvh.obj : error LNK2019: unresolved external symbol __imp___CrtDbgReportW referenced in function "public: void __thiscall BVH::build(class std::vector<class Primitive *,class std::allocator<class Primitive *> > const &)" (?build@BVH@@QAEXABV?$vector@PAVPrimitive@@V?$allocator@PAVPrimitive@@@std@@@std@@@Z)
1>geometry_group.obj : error LNK2001: unresolved external symbol __imp___CrtDbgReportW
1>grid.obj : error LNK2001: unresolved external symbol __imp___CrtDbgReportW
1>PhotonTracer.obj : error LNK2001: unresolved external symbol __imp___CrtDbgReportW
1>C:\Users\СтИВ\Documents\Visual Studio 2008\Projects\PMRender\Debug\PMRender.exe : fatal error LNK1120: 1 unresolved externals
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Среда разработки: Visual Studio 2010.
Использую внешние либы в проекте: BOOST и SDL.

Самое странное: когда билдю релизную версию, она компилится нормально (и запускается), а дебажная выдаёт такие непонятные ошибки

Отправлено: 22:25, 13-03-2011

 

ИО Капитана Очевидности


Contributor


Сообщения: 5387
Благодарности: 1105

Профиль | Отправить PM | Цитировать


Цитата ManHack:
1>bvh.obj : error LNK2019: unresolved external symbol __imp___CrtDbgReportW referenced in function "public: void __thiscall BVH::build(class std::vector<class Primitive *,class std::allocator<class Primitive *> > const &)" (?build@BVH@@QAEXABV?$vector@PAVPrimitive@@V?$allocator@PAVPrimitive@@@std@@@std@@@Z) »
Как видно, ошибка возникает при работе с шаблонами классов.
Судя по всему, соответствующий код не был скомпилирован на этапе подготовки модуля - ввиду отсутствия вызова указанной функции в этом модуле - однако указанная функция вызывается в другом модуле. Как следствие, на этапе линковки обнаруживается, что нужный код в obj модуля отсутствует.

Вариантов тут два
1. Перенести весь "шаблонный" код в заголовок модуля (.h) - данный код будет скомпилирован в процессе подключения этого заголовка к cpp-файлу.
2. Добавить в заголовок команды принудительной компиляции кода шаблонного класса для указанного класса-параметра
extract template <param> class; // правильное написание команды не помню, но примерно так

-------
Самое совершенное оружие, которым забиты арсеналы богатых и процветающих наций, может легко уничтожить необразованного, больного, бедного и голодного. Но оно не может уничтожить невежество, болезнь, нищету и голод. (Фидель Кастро)

Почему всех осужденных за измену Родине при Сталине реабилитировали при Горбачёве по отсутствию состава преступления? Потому что при Горбачёве измену Родине перестали считать преступлением.


Отправлено: 08:16, 14-03-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Последняя ошибка компоновщика

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Нужна последняя версия exe2aut asus a9rp AutoIt 10 05-09-2015 18:25
V. 2007 - Последняя ошибка: Сообщение отложено агентом классификатора samyray Microsoft Exchange Server 0 03-09-2010 16:41
Доступ - [решено] последняя сессия slaine Microsoft Windows 2000/XP 2 06-02-2008 13:11
Последняя степень отчаянья DragonFly Вебмастеру 3 02-07-2006 21:16
Последняя миля?? JonSimonJon Сетевые технологии 29 17-02-2005 17:29




 
Переход