默认情况下,gcc是否链接到静态或动态标准库?

时间:2011-08-02 01:25:55

标签: c gcc dynamic static linker

例如:

gcc source-file

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

2 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:1)

大多数链接器在链接时更喜欢动态库到静态,但通常它们有标记来明确指定行为。它绝对取决于系统 - 请查看链接器文档以获取详细信息。