0
既然目标文件(ET_REL,* .o)必须有部分,而动态库(ET_DYN,* .so)同时包含段和段,那么* so文件可以静态链接,即使它旨在用于动态链接?可以将.so文件静态链接到可执行文件吗?
既然目标文件(ET_REL,* .o)必须有部分,而动态库(ET_DYN,* .so)同时包含段和段,那么* so文件可以静态链接,即使它旨在用于动态链接?可以将.so文件静态链接到可执行文件吗?
动态库(ET_DYN,*。所以)同时具有段和段
动态库通常有专门的章节,但只是因为他们没有被剥夺。有很多动态库可以做而不是有任何部分(只有分段为需要供库工作)。
* * so文件可以静态链接,即使它旨在用于动态链接?
号大多数UNIX接头考虑a.out
和foo.so
是最终 Link产品,没有提供任何进一步的修改。
包括foo.so
到a.out
在理论上是可行的,但在实践中很难。
考虑这样的情况foo.so
定义和导出功能foo
和bar
,而且foo
电话bar
。假设有可能将foo.so
链接到a.out
中,其具有与bar
不同的定义。
在这种情况下会发生什么?多重定义错误? foo
致电bar
里面foo.so
? foo
拨打bar
里面a.out
?还有别的吗?所有上述替代方案都需要连接器变得比现在复杂得多,而且已经足够复杂了。