Android和iOS中的C/C++标准库在哪里?

weixin_38062545 2019-09-12 01:25:19
据我所知,可以用C/C++在Android和iOS上编写应用程序,而不是Java和Objective-C. 既然C和C都依赖于他们的标准库,那么C/C++标准库在这些操作系统中的实现位置和方式是什么?它是更大的东西的一部分,例如Android NDK?如果不是,我可以根据需要使用不同的实现吗?
...全文
187 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38084266 2019-09-12
  • 打赏
  • 举报
回复
这里有几个概念,我将尽量保持简洁. Android使用Bionic作为其C库.它还列出了different C++ libraries,但是,他们建议你坚持使用libc(Clang),因为他们已经停止支持libstdc(他们称之为gnustl)而STLPort是古老的.现在即使他们将libstdc称为系统运行时,特别是libstdc,实际调用支持库libsupc++.为了获得异常和RTTI支持,你需要实现/构建它,这似乎不是这样的. Android系统. 对于Apple来说,这是一个不同的故事. XCode是IDE(不是编译器!)在旧版本的Mac上,他们发布了一个古老版本的GCC.有一个过渡期,他们使用llvm-gcc和符号链接gcc来铿锵.现在最新版本的XCode仅支持LLVM / Clang.默认情况下,Mac使用libc,但如果您愿意,可以选择libstdc.请记住,尽管Clang尽可能与GCC兼容ABI,但混合libc / libstdc编译的库可能并不明智. 你可以在你的工具链中使用不同的C库吗?不容易.您需要将选择的C库(即Newlib)移植到平台上,这并非易事.此外,您需要构建一个交叉编译器工具链,不仅可以定位该系统,还可以使用新库.您将不得不调查那些已经为您完成此操作的人. 现在,即使很容易,也没有充分的理由.通常情况下,您只想换掉库中的选择部分,例如malloc. Android尤其可以使用jemalloc.

435

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧