什么是libc++和libstdc++

问题描述 投票:0回答:2

我有几个问题。

1) 什么是

libc++
libstdc++

2)它们有什么区别?

3)它们可以互换吗?

4)这是编译器应该实现的东西吗?

5) 我什么时候应该使用其中一种?

c++ libstdc++ libc++
2个回答
9
投票

1) 什么是 libc++ 和 libstdc++ ?

它们是C++标准库的实现。

2)它们有什么区别?

它们是完全不同的实现。

3)它们可以互换吗?

是的,您应该能够互换使用它们。 (但是您不能轻松地在同一个程序中使用两者。)

5) 我什么时候应该使用其中一种?

您不必担心这一点。您的代码应该与any标准库实现一起使用。


8
投票

libstdc++ 是 GNU c++ 标准库实现。

libc++ 是 LLVM/clang c++ 标准库实现。

即使使用 clang 编译,也经常使用 libstdc++ (gnu)(在 Linux 上)。

libc++ (clang) 存在的一个主要原因是 libstdc++ (gnu) 是 GPL,因此 Apple 无法发布它,因此您可以将 libc++ 视为非 GPL libstdc++。

© www.soinside.com 2019 - 2024. All rights reserved.