这个ABI重要吗? [英] Is this ABI thing important?

查看:81
本文介绍了这个ABI重要吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我浏览了GCC文档并发现了使用

TLAABI。他们正在使用这个表达,好像我应该知道它是什么。

我因此运行谷歌搜索并找到下面的链接。它是一个

''抽象二进制接口'',这听起来像是一种花哨的方式来说

抽象层。我没有机会阅读大部分文献,

但看起来很重要。对于不同的硬件平台来说,看起来好像有不同的ABI,这些都是硬件制造商关注的问题。还有一种称为通用的东西,即b $ b,这似乎是为了与C ++标准建立密切的关系。



=nofollowhref =http://www.armdevzone.com/EABI/CppABI.html\"target =_ blank> http://www.armdevzone.com/EABI/CppABI.html


-

STH

哈顿定律:只有一个不可侵犯的法律

KDevelop: http://www.kdevelop.org SuSE: http://www.suse.com

Mozilla: http://www.mozilla.org

解决方案

Steven T. Hatton写道:

我浏览了GCC文档并发现了使用
TLAABI。他们使用的表达方式好像我应该知道它是什么。


应用程序二进制接口。

我因此运行谷歌搜索并找到以下链接。它是一个抽象的二进制接口'',听起来像是一种说明抽象层的奇特方式。我没有机会阅读大部分文献,
但看起来很重要。看起来不同的硬件平台有不同的ABI,这些都是硬件制造商的关注点。还有一种称为通用的ABI,它似乎是为了与C ++标准建立密切的关系。

http://www.armdevzone.com/EABI/CppABI.html




要回答你在主题行中提出的问题,是的,重要的是

如果你想编写编译器或调试器或其他人的驱动程序

可以动态链接和控制。这就是我理解的内容

阅读部分页面。


V


Steven T. Hatton写道:

我浏览了GCC文档并发现了使用
TLAABI。他们正在使用这个表达,好像我应该知道它是什么。
我因此运行谷歌搜索并找到下面的链接。
这是一个''抽象二进制接口'',听起来像一种说法抽象层的奇特方式。我没有机会阅读大部分文献,
但看起来很重要。看起来好像不同的硬件平台有不同的ABI,


和操作系统。

这些是硬件制造商的关注点。
还有一种称为通用ABI的东西似乎是为了与C ++标准建立密切关系。
http://www.armdevzone.com/EABI/CppABI.html




这与C ++计算机编程语言无关。

但编译器开发人员需要指导编写编译器

,它将发出可互操作的代码。使用操作系统

(在特定的计算机体系结构上运行)。

编译器必须能够构建可运行的可执行程序

通过操作系统

并链接到现有的[系统]库。


无法保证由一个C ++编译器编译的库

可以链接到另一个C ++编译器编译的程序

在同一平台上(计算机体系结构+操作系统)。

无法保证C编译的函数编译器

可以从C ++编译器编译的程序中成功调用

,即使它们被声明为externC也是如此。没有投诉链接。

但是C ++编译器可以生成可以链接到其他编译器和调用函数的库中的对象文件

来自这些图书馆成功地获得了b $ b,部分原因是它们符合ABI。


E. Robert Tisdale写道:

Steven T. Hatton写道:


http://www.armdevzone.com/EABI/CppABI.html


这与C ++计算机编程语言无关。




这是一个不正确的陈述。

"第1章:简介"


"在本文档中,我们为C ++

程序指定应用程序二进制接口,即,目标代码在用户C ++代码和

实现提供的系统和库之间进行接口。这包括C ++数据对象的内存布局,包括预定义和用户定义的
数据类型,以及内部编译器生成的对象,如虚拟

表。它还包括函数调用接口,异常处理,b $ b接口,全局命名和各种目标代码约定。


一般来说,这个文档是作为通用规范编写,可以在各种架构上通过C ++实现使用
....

-

STH

哈顿定律:只有一个不可侵犯的法律

KDevelop: http://www.kdevelop.org SuSE: http://www.suse.com

Mozilla: http ://www.mozilla.org


I was skimming through the GCC documentation and came across the use of the
TLA "ABI". They were using the expression as if I should know what it is.
I therefore ran a google search and found the link below. It''s an
''abstract binary interface'', which sounds like a fancy way of saying
abstraction layer. I haven''t had a chance to read much of the literature,
but it looked important enough to mention. It looks as though there are
different ABIs for different hardware platforms, and these are the concern
of the hardware manufacturers. There also is something called a generic
ABI which seems to be directed toward establishing a close relationship
with the C++ Standard.

http://www.armdevzone.com/EABI/CppABI.html

--
STH
Hatton''s Law: "There is only One inviolable Law"
KDevelop: http://www.kdevelop.org SuSE: http://www.suse.com
Mozilla: http://www.mozilla.org

解决方案

Steven T. Hatton wrote:

I was skimming through the GCC documentation and came across the use of the
TLA "ABI". They were using the expression as if I should know what it is.
Application Binary Interface.
I therefore ran a google search and found the link below. It''s an
''abstract binary interface'', which sounds like a fancy way of saying
abstraction layer. I haven''t had a chance to read much of the literature,
but it looked important enough to mention. It looks as though there are
different ABIs for different hardware platforms, and these are the concern
of the hardware manufacturers. There also is something called a generic
ABI which seems to be directed toward establishing a close relationship
with the C++ Standard.

http://www.armdevzone.com/EABI/CppABI.html



To answer the question you put in the subject line, yes, it is important
if you want to write a compiler or a debugger or a driver that other ppl
could dynamically link to and control. That''s what I''ve understood from
reading some of the pages.

V


Steven T. Hatton wrote:

I was skimming through the GCC documentation and came across the use of the
TLA "ABI". They were using the expression as if I should know what it is.
I therefore ran a google search and found the link below.
It''s an ''abstract binary interface'', which sounds like a fancy way of saying
abstraction layer. I haven''t had a chance to read much of the literature,
but it looked important enough to mention. It looks as though
there are different ABIs for different hardware platforms,
and operating systems.
and these are the concern of the hardware manufacturers.
There also is something called a generic ABI which seems to be directed
toward establishing a close relationship with the C++ Standard.
http://www.armdevzone.com/EABI/CppABI.html



This has nothing to do with the C++ computer programming language.
But compiler developers need guidance to write compilers
that will emit code which is "interoperable" with the operating system
(running on a particular computer architecture).
The compiler must be able to build executable programs
that can be run by the operating system
and linked into existing [system] libraries.

There is no guarantee that libraries compiled by one C++ compiler
can be linked into programs compiled by another C++ compiler
on the same platform (computer architecture + operating system).
There is no guarantee that functions compiled by a C compiler
can be successfully called from a program compiled by a C++ compiler
even if they are declared extern "C" and linked without complaint.
But C++ compilers can produce object files that can be linked
into libraries compiled by other compilers and call functions
from those libraries successfully
partly because they conform to the ABI.


E. Robert Tisdale wrote:

Steven T. Hatton wrote:


http://www.armdevzone.com/EABI/CppABI.html



This has nothing to do with the C++ computer programming language.



That is an incorrect statement.

"Chapter 1: Introduction"

"In this document, we specify the Application Binary Interface for C++
programs, that is, the object code interfaces between user C++ code and the
implementation-provided system and libraries. This includes the memory
layout for C++ data objects, including both predefined and user-defined
data types, as well as internal compiler generated objects such as virtual
tables. It also includes function calling interfaces, exception handling
interfaces, global naming, and various object code conventions."

"In general, this document is written as a generic specification, to be
usable by C++ implementations on a variety of architectures...."
--
STH
Hatton''s Law: "There is only One inviolable Law"
KDevelop: http://www.kdevelop.org SuSE: http://www.suse.com
Mozilla: http://www.mozilla.org


这篇关于这个ABI重要吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆