这里有几个概念在起作用,我将尝试使其简短。Android使用Bionic作为其C库。它还列出了不同的C ++库,但是,他们建议您坚持使用libc ++(Clang),因为它们已不再支持libstdc ++(它们称为gnustl),并且STLPort很古老。现在,即使他们特别调用libstdc++了系统运行时libstdc++,该支持库实际上也称为libsupc ++。为了获得异常和RTTI支持,您需要实现/构建此功能,Android似乎并非如此。
对于苹果公司而言,则是另一回事。XCode是IDE(不是编译器!)。在Mac的旧版本上,他们提供了较旧的GCC版本。在过渡时期,他们使用llvm-gcc并链接gcc到clang。现在,最新版本的XCode仅支持LLVM / Clang。默认情况下,Mac使用libc ++,但是您可以根据需要选择libstdc ++。请记住,尽管Clang尝试与GCC尽可能与ABI兼容,但混合由libc ++ / libstdc ++编译的库可能并不明智。
您可以在工具链中使用其他C库吗?不容易。您需要将选择的C库(即Newlib)移植到不平凡的平台上。此外,您将需要构建一个交叉编译器工具链,该工具链不仅要针对该系统,还要使用新库。您将不得不调查已经为您完成此操作的人员。
现在,即使很简单,也确实没有充分的理由。通常,您只想换出库的某些部分,例如malloc。例如,Android尤其可以使用jemalloc。
| 归档时间: |
|
| 查看次数: |
874 次 |
| 最近记录: |