Использование библиотеки, которая зависит от другой библиотеки без привязки всех зависимостей - PullRequest
0 голосов
/ 29 сентября 2019

Я делаю кучу библиотек для использования в моих программах, и некоторые из моих библиотек зависят от других библиотек, поэтому я компилирую их, используя опцию -l gcc для связывания зависимостей, и она работает нормально, но есть один случайгде у меня проблема:

  • Допустим, я создаю библиотеку под названием lib1 с некоторыми базовыми функциями.
  • Затем я создаю lib2 с функциями, которые иногда вызывают функции lib1.
  • Наконец, я делаю программу, которая использует функцию из lib2, которая зависит от функции lib1 (скажем, у меня есть собственный strcpy в lib2, которому нужен собственный malloc из lib1)

Сделав этоЯ пытаюсь скомпилировать мою программу с помощью gcc -llib2 (при условии, что lib2.a содержит функции lib1, если я понял, как работают статические библиотеки), но она не работает, потому что функция из lib2 нуждается в функции из lib1, которую компилятор не находит,Я предполагаю, что мне действительно нужно выполнить gcc -llib1 -llib2, но это кажется бесполезным, поскольку lib2 уже должна содержать функции lib1.

Можно ли как-нибудь скомпилировать свою программу без указания каждой библиотеки в командной строке gcc?(при условии, что у меня будет более 2 библиотек и несколько уровней зависимостей)

Я нашел этот ответ https://stackoverflow.com/a/41323069/12136455, который, кажется, пролил некоторый свет на мою проблему, но я не совсем понимаю, что он имеет в виду.

...