1、C++源程序,经过编译和链接,形成可执行文件
编译 | 过程 | 实现工具 | |
编译过程 | 源程序->汇编语言 | 编译器 | |
汇编过程 | 汇编语言->机器语言(目标文件obj) | 硬件 | |
链接 | 链接所有的目标文件以及所需库函数等诸多操作,形成可执行文件 | 链接器 |
2、汇编语言:汇编语言有不同版本,与平台有关(CPU、操作系统、编译器等)
3、在不同的平台上,C++源程序经过了编译之后生成的目标文件已然不同,再经过一层链接之后生成的可执行函数也是天差地别,拿着A平台的可执行文件去B平台执行,通常是行不通的,所以C++不能跨平台;C++不能跨平台,并不是指源程序不能跨平台,而是可执行文件不可跨平台。
4、与java相比较,C++编译是一步到位的,直接生成了机器可执行文件,而java编译是生成的中间文件,可以放到各个操作系统所定制的java虚拟机中去,之后再进一步编译成机器语言并执行,所以Java可跨平台,它的跨平台是建立在有对应JVM基础之上的