永久链接到其他共享库

时间:2013-02-19 18:18:56

标签: linux shared-libraries dynamic-linking libtool

目前我正在使用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的依赖?

谢谢!

1 个答案:

答案 0 :(得分:0)

答案似乎与此问题相同: Link a static library to a shared one during build?

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