Как воевать "multiple definitions" в случае шаблонов?
От: Mazay Россия  
Дата: 29.07.07 09:11
Оценка:
В общем проблема известная, но здесь я подходящего решения не нашёл. Основная сложность в том, что у меня есть шаблонный класс, который генерируется страшным бустовым макросом (BOOST_CLASS_EXPORT_GUID). Всё это чудо лежит в заголовочнике, который входит в состав статической библиотеки. Заголовочник цепляется как из cpp-шек самой либы, так и в коде, эту библиотеку использующем. В результате один и тот-же класс оказывается определён в двух единицах трансляции, что приводит ко всяким LNK2005, multiply defined, etc...

Найденные мною варианты решения сводятся к:
  1. Вынесение кода в cpp. В данном случае валится в рантайме. Не знаю что там такое творит буст с этими классами, но факт есть факт.
  2. Заткнуть линкер опцией. Не помогает — валится в рантайме.

Как это бороть?
Главное гармония ...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.