我正在使用运行嵌入式Linux内核的ARM嵌入式系统(ARM9)。内核使用eglibc与GCC 4.5.x一起编译。 运行二进制文件是否有任何损害,使用GCC 4.8.x或更新的编译代码使用glibc。
我已经读过你不要因为稳定性原因而混淆和匹配libc。但据我所知,它们都兼容ABI,因此不应该有任何问题。
我使用的一些代码要求STD11正确编译,因此我不能使用GCC4.5。
答案 0 :(得分:1)
使用eglibc
使用GCC 4.5.x编译内核
内核构建不使用GLIBC,因此与用于构建内核的libc(不)完全无关。
运行二进制文件是否有任何损害,它是GCC 4.8.x或更新的使用glibc的编译代码。
没有
当二进制链接libc时会发生什么?它在交叉编译时与glibc相关联,但会链接到sysroot中的eglibc。
通常,GLIBC和EGLIBC保证向后兼容性:即,与GLIBC-x.y链接的二进制文件对任何不早于x.y的GLIBC都可以正常运行。
EGLIBC与GLIBC的偏差非常小。 EGLIBC允许禁用某些功能。如果在运行时它找到不早于xy的GLIBC(GLIBC将具有二进制文件不会使用的功能)( IF EGLIBC实际上禁用了某些功能),那么链接到EGLIBC-xy的二进制文件将运行正常),但这是正常的:二进制文件很少使用每个 GLIBC接口。