系统相关
首页 > 系统相关> > linux – 无关的图书馆链接

linux – 无关的图书馆链接

作者:互联网

我有一个问题可能有点傻,因为我很确定我可能已经知道了答案.

假设你有静态库A,动态共享对象库B和Linux下的程序C.假设库A调用库B中的函数,并且程序从库A调用函数.现在假设C中调用的所有函数都不使用B中的函数.

要编译C,仅仅链接A和省略B就可以了,而且你的程序C可以在没有安装库B的系统上运行吗?

解决方法:

如果程序调用A中不引用B的函数,则在链接或加载时不需要B,假设A中的函数位于单独的编译单元中,这通常是库的情况.

链接器将从C使用的库中提取函数,因为它们都不会调用B中的函数,所以不需要B.

标签:linux,linker,shared-libraries,static-libraries
来源: https://codeday.me/bug/20190724/1518785.html