C标准库是静态库还是动态库?

8
C标准库函数(例如printf,scanf)被视为静态库函数还是动态库函数?

1
一个函数被称为静态或动态有什么意义? - David Heffernan
我猜他们的意思是“链接”。 - Mitch Wheat
3
这完全取决于实现,可能是任何东西,在同一实现下,甚至可以通过编译器切换同时实现两种可能性。因此,实际上无法回答。我的实现默认情况下与MSVCRT动态链接,但这意味着什么...没有任何意义。 - Damon
1
如果是这样的话,那么问题就转化成了“你能告诉我如何链接我的程序吗?”;-) - David Heffernan
2个回答

6

“-static-libgcc” 只涉及到 “libgcc”,而不是标准的 C 库。你可以链接 “libc.a” 而不是通常的 “libc.so”。 - wRAR
/MT 和 /MD 是编译选项,而非链接器选项。 - Hans Passant

2

你真的不需要太在意。

编译器甚至可以特殊处理一些标准函数,只要按照标准定义的方式处理即可。

有时候GCC会这样做,例如它可能会将对memset的调用优化为循环...

如果你想知道如何链接你的程序foo,在GNU/Linux上使用命令ldd foo即可。

祝好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接