【发布时间】:2011-10-17 21:27:24
【问题描述】:
例如:
gcc source-file
我认为它是动态的,但我不确定。它依赖于系统吗?
【问题讨论】:
标签: c gcc dynamic static linker
例如:
gcc source-file
我认为它是动态的,但我不确定。它依赖于系统吗?
【问题讨论】:
标签: c gcc dynamic static linker
它在技术上依赖于系统,但在您可能开发的大多数系统上,答案是“动态的”。
一些系统(大部分是非常旧的、嵌入式的或其他专用的)根本不支持动态链接,但大多数开发人员不太可能关心这些系统。在这些系统上,链接器当然会默认为静态链接(除非端口搞砸了:))。
某些系统也不提供其标准库的静态版本,因此您无法静态链接它们。
在许多系统(尤其是任何典型的 Linux 系统)上,您可能都有一个名为 ldd 的实用程序。您可以使用 ldd <file> 检查它是否动态链接到标准库(假设您确定该库被称为什么,但通常是 libc)。
【讨论】:
大多数链接器在链接时更喜欢动态库而不是静态库,但通常它们具有明确指定行为的标志。这绝对取决于系统 - 请查看您的链接器文档了解详细信息。
【讨论】: