OK6410A 开发板 (七) 8 buildroot-2021.02 OK6410A 用户空间的C语言标准库

  • [https://zhuanlan.zhihu.com/p/85779379]该文中讲了
C有标准, 有些时候会升级(就像armv6 armv7 armv8 一样),有C99, C11
C++有标准, 有些时候会升级(就像armv6 armv7 armv8 一样),有C++03, C++11, C++14

标准 并不对应代码 , 我们需要将标准转换为代码,并能够解析代码
标准涉及到两个东西
	编译器
	标准对应的代码 : 标准库
		对于C   是 C标准库和ISO C标准库 // C标准库和ISO C标准库 是一样的
		对于C++ 是 C++标准库

C标准库的实现有很多种
	GNU组织 实现了一种, 叫 glibc
	apple公司实现了一种, 位于 libSystem 中
	微软公司 实现了 一种,位于 CRT
	google公司 实现了一种,叫Bionic
	嵌入式中一般用 	uClibc-ng, musl libc和diet libc // 提供更小的二进制文件和更少的内存占用
C++标准库的实现有很多种
	GNU组织实现了一种,叫libstdc++
	apple公司没有实现,但使用了libc++
	微软公司 实现了 一种,位于 CRT
	google公司没有实现,提供了多种 libc++ libstdc++ STLport

  • 我们必需使用标准库吗
可以不用
只要在你的程序中不引入它们的任何一个头文件,就代表了不用标准库
但是你实现工程的时候就需要通过一些提供的系统调用使用某种方法与操作系统互动。
其实 标准库中的函数/方法在底层实现的时候 也是 用 系统调用(与硬件设备交互)做的

嵌入式可以考虑不使用标准库(但是一般没必要)
极致优化 可以考虑 不使用标准库(这个就很有必要了)

C标准在哪里


其他

上一篇:rpm打包快速入门教程


下一篇:buildroot 编译