C++不可跨平台的深入理解

1、C++源程序,经过编译和链接,形成可执行文件

编译 过程实现工具
 编译过程源程序->汇编语言编译器
 汇编过程汇编语言->机器语言(目标文件obj)硬件
链接 链接所有的目标文件以及所需库函数等诸多操作,形成可执行文件链接器

 

2、汇编语言:汇编语言有不同版本,与平台有关(CPU、操作系统、编译器等)

3、在不同的平台上,C++源程序经过了编译之后生成的目标文件已然不同,再经过一层链接之后生成的可执行函数也是天差地别,拿着A平台的可执行文件去B平台执行,通常是行不通的,所以C++不能跨平台;C++不能跨平台,并不是指源程序不能跨平台,而是可执行文件不可跨平台。

4、与java相比较,C++编译是一步到位的,直接生成了机器可执行文件,而java编译是生成的中间文件,可以放到各个操作系统所定制的java虚拟机中去,之后再进一步编译成机器语言并执行,所以Java可跨平台,它的跨平台是建立在有对应JVM基础之上的

 

 

 

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我有明珠一颗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值