我了解动态链接的好处(旧代码可以自动利用库升级的优势,它具有更高的空间利用率),但是它肯定有缺点,尤其是在异构Linux生态系统中。这使得很难分发与发行版无关的二进制文件,该二进制文件“仅能正常工作”,并且由于系统升级破坏了向后兼容性或将回归引入共享库,使得先前工作的程序更有可能被破坏。
鉴于这些缺点,为什么动态链接似乎受到普遍青睐?为什么即使对于小型应用程序,也很难找到静态链接的,与发行版无关的Linux二进制文件?
最佳答案
有以下三个主要原因:
dlopen
。 (这意味着与其他任何事物的静态链接都不那么值得,因为如果不替换C库就无法获得完全静态的二进制文件。)您还应该记住,Linux-not-Android软件生态系统完全基于源代码。如果您要运送二进制文件,并且您不是发行商,那您做错了。