VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 955|回复: 6

请教大家一些二进制接口的问题

[复制链接]

2

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-6 03:00:02 | 显示全部楼层 |阅读模式
我个人的理解API是面向编译器的协议而ABI是面向操作系统的协议,是否能这样理解?
API似乎很明了,但是要做到跨平台的ABI接口到底要考虑到哪些问题?大家能讨论一下吗?跨平台需要解决哪些问题?
回复

使用道具 举报

0

主题

10

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-11 13:54:01 | 显示全部楼层
关注
回复

使用道具 举报

0

主题

36

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
发表于 2020-1-15 19:18:02 | 显示全部楼层
所谓跨平台,说白了,其实就是在所有的操作系统内都有它的一份实现,不过所有的实现的内部的最本质的东西都是调用各个系统的API函数,只不过用类,或者API封装的思想封装成了跨平台的库或者程序的东西。
很多的跨平台的产品,看看代码当中如C++,都有通过include,或者预编译指令将某平台上面的相关的东西编译联接。
回复

使用道具 举报

2

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-2-9 22:00:02 | 显示全部楼层
您所说的include,或者预编译指令的目的是保证C++在不同的平台上生成不同的目标代码
我说的跨平台的意思是指在windows下的一个可执行文件FTP一把,传到UNIX平台上无须重新编译直接运行.不是说语言一级的跨平台.
回复

使用道具 举报

0

主题

21

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-3-6 18:00:01 | 显示全部楼层
你在说虚拟机?
回复

使用道具 举报

0

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-3-7 08:30:01 | 显示全部楼层
同样的硬件体系下,只有操作系统的接口不一样,只要系统能提供相应的支持(比如WINE),就可以做到.
不同的硬件体系下,只有模拟或是翻译了....
回复

使用道具 举报

2

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-4-19 20:30:02 | 显示全部楼层
您说的操作系统的接口是不是指可执行文件的格式?如果windows和UNIX都能解释相同的目标文件格式是不是编译过的程序就能够跨平台了?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表