0

目前我正在使用 libtool 创建一个共享库“libmylib.so”,其语句如下:

libtool --mode=compile g++ -Wall -fPIC -shared $(CFLAGS) $(LFLAGS) $(LSTATIC)
libtool --mode=link g++ -shared -export-symbols-regex beam_ -rpath /usr/lib -lotherlib

用它创建的库依赖于另一个(非静态)库“libotherlib.so”,这就是我使用语句“-lotherlib”的原因。

现在,当我构建一个链接到 libmylib.so 的可执行文件时,会发生一些奇怪的事情:我必须再次链接到 libotherlib.so,这意味着我也必须为这个可执行文件添加一个语句“-lotherlib”。

因此,在构建 libmylib.so 时似乎以前的 libotherlib.so 链接并不持久。但是我该如何改变呢?如何构建 libmylib.so 以便它隐含地知道它对共享库 libotherlib.so 的依赖关系?

谢谢!

4

1 回答 1

0

这个问题的答案似乎是一样的:在构建期间将静态库链接到共享库?

很大的区别:当指定共享对象而不是静态对象进行链接时,它们不包括在内,但生成的共享库会记住它对这些 so 的依赖性。

于 2013-02-22T06:34:30.680 回答