【问题标题】:By default, does gcc link to static or dynamic standard library?默认情况下,gcc 是否链接到静态或动态标准库?
【发布时间】:2011-10-17 21:27:24
【问题描述】:

例如:

gcc source-file

我认为它是动态的,但我不确定。它依赖于系统吗?

【问题讨论】:

    标签: c gcc dynamic static linker


    【解决方案1】:

    它在技术上依赖于系统,但在您可能开发的大多数系统上,答案是“动态的”。

    一些系统(大部分是非常旧的、嵌入式的或其他专用的)根本不支持动态链接,但大多数开发人员不太可能关心这些系统。在这些系统上,链接器当然会默认为静态链接(除非端口搞砸了:))。

    某些系统也不提供其标准库的静态版本,因此您无法静态链接它们。

    在许多系统(尤其是任何典型的 Linux 系统)上,您可能都有一个名为 ldd 的实用程序。您可以使用 ldd <file> 检查它是否动态链接到标准库(假设您确定该库被称为什么,但通常是 libc)。

    【讨论】:

      【解决方案2】:

      大多数链接器在链接时更喜欢动态库而不是静态库,但通常它们具有明确指定行为的标志。这绝对取决于系统 - 请查看您的链接器文档了解详细信息。

      【讨论】:

        猜你喜欢
        • 2014-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-08
        相关资源
        最近更新 更多