Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么是ABI,为什么';tc++;有一个标准的,如果有又有什么关系呢? < P> ABI是一个。它描述了如何组织和访问应用程序二进制文件的标准_C++ - Fatal编程技术网

C++ 什么是ABI,为什么';tc++;有一个标准的,如果有又有什么关系呢? < P> ABI是一个。它描述了如何组织和访问应用程序二进制文件的标准

C++ 什么是ABI,为什么';tc++;有一个标准的,如果有又有什么关系呢? < P> ABI是一个。它描述了如何组织和访问应用程序二进制文件的标准,c++,C++,标准化将允许多个编译器构建彼此完全兼容的二进制文件,或者可能允许单个可执行文件在不同平台上运行而无需重新编译等。我想我知道你所说的最后一个是什么意思,但它的措辞有误导性。。。不能在不同的平台上运行相同的二进制文件:\@Mehrdad:可以,只要这些平台提供应用程序使用的系统调用接口的相同子集和相同的库API。(例如,FreeBSD实现了一个“Linux兼容层”,以便能够执行一些(而不是全部)Linux二进制文件。)@Mehrdad这取决于ABI的级别。有了一个完整的操作系统级ABI,您可以做到这

标准化将允许多个编译器构建彼此完全兼容的二进制文件,或者可能允许单个可执行文件在不同平台上运行而无需重新编译等。

我想我知道你所说的最后一个是什么意思,但它的措辞有误导性。。。不能在不同的平台上运行相同的二进制文件:\@Mehrdad:可以,只要这些平台提供应用程序使用的系统调用接口的相同子集和相同的库API。(例如,FreeBSD实现了一个“Linux兼容层”,以便能够执行一些(而不是全部)Linux二进制文件。)@Mehrdad这取决于ABI的级别。有了一个完整的操作系统级ABI,您可以做到这一点(前提是还存在必要的库和依赖项),没有被认为是优越的CPU体系结构,所有人都会同意使用并放弃其他一切。操作系统也是如此。所以没有标准的ABI。哦。。。我想我想的是“架构”(CPU)而不是平台,我的坏想法也许说“操作系统”而不是“平台”来澄清?我不能说为什么它没有一个,但是考虑建立一个共享的库,用MIWW编译,它必须在VisualC应用程序中使用。由于没有定义参数传递方式的标准,visualc将与mingw相反地将参数推送到堆栈上。大多数平台都没有这样的标准,原因很简单,因为没有人提出这样的标准。这不是魔法造成的。同样重要的是: