使用依赖于另一个库的库而不链接每个依赖项

时间:2019-09-28 21:48:15

标签: c static-libraries

我正在制作一堆要在程序中使用的库,并且我的某些库依赖于其他库,因此我使用gcc的-l选项来编译它们以链接依赖项,它可以正常工作,但是有一种情况我有问题的地方:

  • 假设我制作了一个名为lib1的库,其中包含一些基本功能。
  • 然后我用有时调用lib1函数的函数来制作lib2。
  • 最后,我编写了一个程序,该程序使用lib2中的函数,该函数依赖于lib1函数(假设我在lib2中有一个自定义strcpy,需要从lib1中获得一个自定义malloc)

这样做之后,我尝试使用gcc -llib2编译我的程序(假设我理解静态库的工作原理,假设lib2.a包含lib1函数),但是它不起作用,因为lib2中的函数需要lib1中的函数编译器找不到。我想我实际上需要执行gcc -llib1 -llib2,但是似乎没用,因为lib2已经应该包含lib1函数。

有什么方法可以在不指定gcc命令行中每个库的情况下编译程序? (假设我将拥有2个以上的库和多层依赖项)

我找到了这个答案https://stackoverflow.com/a/41323069/12136455,似乎可以看出我的问题,但我不太明白他的意思。

0 个答案:

没有答案