Страницы

Поиск по вопросам

среда, 12 июня 2019 г.

Зависимости от библиотеки

Всем Здрасте, Есть задача: прилинковать С++ библиотеку без лишних зависимостей, то есть:
Есть библиотека lib1 эта библитека зависит от библиотеки lib2. Есть проект proj1 и proj2. Они оба зависят от и используют lib1
Но proj1 использует функционал lib2 соответственно зависимость от этой библиотеки ему нужна. А proj2 не использует функционал lib2 соответственно зависимость от этой библиотеки ему не нужна
Как прилинковать lib1 в proj2 и исключить зависимости от lib2?


Ответ

Библиотека - это просто архив объектных файлов. В "традиционном" режиме линковка библиотек делается с точностью до индивидуальных объектных файлов. Если при линковке lib1 в proj2 удастся аккуратно "выхватить" из lib1 только те объектные файлы, которые не ссылаются на символы из lib2, то линковать lib2 в proj2 не понадобится вообще. Задача решена. Для этого обычно нужно, чтобы объектные файлы в lib1 были продуманно/аккуратно организованы и довольно тонко гранулированы.
Если же какие-то символы из lib2 все таки притянутся в proj2, то ничего не поделаешь: придется либо линковать lib2 в proj2, либо писать "заглушки" для этих символов.

Комментариев нет:

Отправить комментарий