【发布时间】:2014-06-17 18:12:00
【问题描述】:
如果这是一个幼稚的问题,我很抱歉,但有些事情我无法理解。
为什么 C++ 标准库与不同的编译器实现(g++ 的 libstdc++ 和 clang 的 libc++)捆绑在一起,而不是与(类 UNIX)操作系统捆绑在一起,就像,说C标准库呢?考虑到它是 C 库的超集,为什么它不与 C 库一起维护?
【问题讨论】:
-
@40two 嗯,这是模棱两可的,你是对的。澄清一下,我的意思是为什么它们不在同一个保护伞下维护,例如,在
glibc或另一个 C 标准库项目下。 -
编译器和库需要就库使用的二进制接口达成一致。 C 编译器(大多数)同意一个通用的调用约定等,因此很容易将库与编译器分开维护。 C++ 编译器在调用约定等方面往往存在差异,因此需要为每个编译器单独编译库。
-
它没有。被this blog post覆盖。
-
拥有操作系统并不意味着您需要 C++ 标准库。但几乎可以肯定拥有 C++ 编译器。
-
@Mysticial:Windows 附带的 libc 库不适用于应用程序。见:blogs.msdn.com/b/oldnewthing/archive/2014/04/11/10516280.aspx