前言
要达到c++跨平台开发目的,我打算从为什么C++不能跨平台开发和如何实现跨平台开发这两个方面入手
为什么C++不能跨平台开发
C++不能跨平台,不是指源程序不能跨平台,而是可执行文件不能跨平台。
因为C++源程序要经过预处理、编译、汇编和链接过程才生成可执行文件,但由于这过程中会受到平台限制,如汇编语言有不同版本,和平台有关(CPU、操作系统和编译器等);所以不能将windows平台生成的exe扔到Linux平台运行。
C++ 本身只是一种语言,并无“跨平台”与“不跨平台”之分。所谓“不跨平台”,只是编译出来的目标代码是机器相关的而已。
而与java相比较,C++编译是一步到位的,直接生成了机器可执行文件,而java编译是生成的中间文件,可以放到各个操作系统所定制的java虚拟机中去,之后再进一步编译成机器语言并执行,所以Java可跨平台,它的跨平台是建立在有对应JVM基础之上的。
参考文章: