UID:110085
UID:166110
swfeng:非常感谢您的回复。我这样理解不知道对不对:我的程序调用标准库的接口,使用不同的编译器编译出来的程序,可能由于不同的编译器,对标准库的命名不一样,导致编译出来的程序,需要根据编译器对应的标准库命名来查找并调用标准库,所以会造成不兼容的问题。(根本原因是不同编译 .. (2024-07-19 10:07)
UID:222583
fsu0413:“C标准库”确实是标准,但是这个标准只是源码级别的兼容,而不是二进制。同一个平台CPU下,编译出来的机器语言一样也仅限于不使用标准库的时候。与标准库之间的接口就是和标准库有关。举个更容易理解的例子。Windows就有两套标准库,一套msvcrt,一套ucrt,两套库都是系统自带 .. (2024-07-19 07:40)
swfeng:您好,为什么C库不一样,就会造成兼容性?我的理解是,C库的函数接口应该都是一样的,另外在同一个平台CPU下,编译出来的机器语言应该也是一样的,所以这样不管用谁家的C库,理论上都应该是兼容的。本人小白,希望大佬能指导下。 (2024-07-17 09:50)
fsu0413:主要影响二进制兼容的是C库,而常规的GNU/Linux发行版均使用GNU libc(glibc)作为C库,这保证了不同GNU/Linux发行版之间的二进制兼容性。一个非常明显的例子就是安卓,虽然也是Linux发行版,但是它不使用GNU libc,而是使用谷歌自己的bionic。正常情况下安卓的程序需要为安卓 .. (2022-03-02 20:22)
UID:121189
clickto:大佬,你说关于gcc4.9的问题,请问是基于x86还是arm平台?我现在在麒麟下编译的软件,在uos下是有兼容性问题,两者都是基于飞腾的cpu(飞腾d2000),但是系统不同,且系统源中默认提供的qt版本不同,uos中的是5.11,麒麟中是5.12。 (2024-04-25 22:32)