gpt4 book ai didi

android - 知道嵌入式系统是使用 glibc 还是 bionic?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:48:30 28 4
gpt4 key购买 nike

例如 android 使用的是 bionic 而不是 glibc,但是如何弄清楚它实际上是在使用 bionic http://en.wikipedia.org/wiki/Bionic_(software) , 不是 glibc?

我可以在/proc 文件系统中找到此信息吗,或者是否有任何命令可以告诉当前系统上使用了 bionic?

顺便问一下,在嵌入式系统上有可能有多个 c 库吗?

最佳答案

如果您的代码需要根据它是与 Bionic 还是 Glibc 链接而表现不同,这可以而且必须在编译时确定。 Bionic 和 Glibc 无论如何都不是二进制兼容的,因此您需要在编译时提交一组 header 。

#if __BIONIC__
/* Bionic-specific code */
#elif __GLIBC__
/* Glibc-specific code */
#else
#error "This C library is not supported"
#endif

您不会在 /proc 中找到任何信息,因为 /proc 包含有关内核的信息,而不是有关 C 库的信息。

理论上,可以在一个系统上放置任意多的 C 库。然而,这在嵌入式系统上是非常不寻常的,因为它们通常会尽量减少代码大小。我期望多个 C 库的唯一系统是在嵌入式开发人员的机器上,如果该开发人员恰好不​​进行交叉编译(这首先很少见)。再者,Bionic只在Android上使用,Android上也只有Bionic,所以所有Android系统都有Bionic,其他系统没有Bionic。非 Android Linux 系统有一些其他库,Glibc 或(在嵌入式系统上)一些其他 libc,例如 uClibc 或 Dietlibc。

关于android - 知道嵌入式系统是使用 glibc 还是 bionic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12131219/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com