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