2013-10-11 2 views
0

положение:НКУ вложенных библиотек и зависимостей линкера

  • У меня есть статическая библиотека «lib1.a»;
  • вторая статическая библиотека «lib2.a», которая использует функции «lib1.a»;
  • приложение, непосредственно использующее только функции lib2.a.

Когда я связываю приложение, я должен передать в зависимости от приложения также «lib1.a», даже если приложение не вызывает прямо ни одну из функций lib1. Lib2 - это своего рода библиотека обертки более высокого уровня.

Есть ли способ связать lib1 внутри lib2 (своего рода промежуточное соединение), чтобы «приложение» даже не знало о существовании lib1?

Я знаю, что я могу scompact lib1.a и включать файлы объектов внутри lib2.a, но есть ли другой способ, так что это делается автоматически, а ТОЛЬКО ИСПОЛЬЗОВАННЫЕ объектные файлы включены внутри lib2? Linke, когда вы связываете последнее приложение.

{приложение} -uses-> {lib2} -uses-> {[Lib1]}

Cheers, Davide

ответ

0

есть другой способ

Нет, (в любой UNIX-подобной системе, о которой я знаю).

Лучшее, что вы можете сделать, при использовании GNU- ld или gold, чтобы написать libcombined.a как линкера сценарий, содержащий -l2 -l1, и указать приложение к нему.

Смежные вопросы