在Linux上的“ C”上,
我需要静态库来静态链接,还是需要足够的共享库?如果没有,为什么不呢?(它们不包含相同的数据吗?)
是的,您需要静态库来构建静态链接的可执行文件。
静态库是编译对象的捆绑包。静态链接到库时,实际上与获取该库的编译结果,将它们解压缩到当前项目中以及将它们当作自己的对象使用一样。
动态库已链接。这意味着一些信息,例如重定位,已经被修复并丢弃。
此外,动态库必须编译为与位置无关的代码。这不是对静态库的限制,并且会导致某些常见平台(例如x86)的性能发生显着差异。
存在诸如ELF Statifier之类的工具,这些工具试图将动态链接的库捆绑到动态链接的可执行文件中,但是要在任何情况下都无法产生正确的结果是非常困难的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句