Ещё раз линковка
От: remark Россия http://www.1024cores.net/
Дата: 21.09.06 13:44
Оценка:
Не знаю, как лучше назвать топик... Вобщем, проблема следующая.
Есть какой-то общий компонент, например, перевод строки в юникод и обратно. Компонент лежит в h и cpp файлах.
Этот компонент включается в какую-то lib'ку, например lib'ка для работы с БД.
Далее эта lib'ка включается в проект, который собирает exe-файл. И в этот же проект включается исходный компонент для перевода строк в юникод.

Соответственно при сборке exe линкер может ругаеться, что имеется несколько определений этого самого компонета для перевода строк в юникод.

Вопрос: как с этим бороться?

Вариант убрать этот компонет из lib'ки не катит, т.к. эта lib'ка может подключаться в проект, который сам его не включает.

Вариантов может быть много. Например, один компонент может включаться в 2 разные lib'ки. И потом эти 2 lib'ки в один проект. Или ещё как-то.

Ставить у всех общих компонетов __declspec(selectany) (да, среда msvc71) тоже не катит, т.к. их много.


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.