gpt4 book ai didi

c - C 中的库是静态链接的吗?

转载 作者:太空宇宙 更新时间:2023-11-04 07:02:50 25 4
gpt4 key购买 nike

我开始用 Rust 编程,我注意到的第一件事是 Rust 生成大型二进制文件。例如,Rust 的“Hello world!”二进制文件大约有 600K 大,而等效的 C 二进制文件大约有 8K 大。

经过一番搜索,我找到了 this SO post 解释了 Rust 二进制文件很大,因为所有需要的库都是静态链接的。但是 C 不也是这样吗?当我写 #include <stdio.h>在 C 中,我不是也静态链接相关的 I/O 库吗?我一直认为答案是肯定的,但现在我怀疑自己。

最佳答案

#include文件内容复制到源文件中,但如果 header 只是函数声明,那么所有要做的就是告诉程序那些函数可以在您的代码中调用。实际实现可能在另一个文件中定义,该文件需要(静态或动态)链接到您的可执行文件。如果您查看 stdio.h 的 header 您会看到它只包含函数原型(prototype)。

许多编译器提供了对标准库进行静态或动态链接的选项。

关于c - C 中的库是静态链接的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36039459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com