1 为何C++编译的二进制文件不能在 linux和windows下通用【度娘】
可以这么理解,语言只是一组规范,而编译器是将这些规范解释到对应的操作系统的机器指令。所以不同的平台要用他们自己的编译器
另一种语言JAVA,与之相反,是跨平台的。理论上使用一个编译器生成的可执行文件,可以运行在任意一个操作系统上。这是JAVA语言与C++等语言重大不同之一。当然,跨平台的前提是,各个操作系统都有对应的JAVA虚拟机。即,Java程序是基于JAVA虚拟机运行的,而不是直接与系统交互。1 为何C++编译的二进制文件不能在 linux和windows下通用【度娘】
可以这么理解,语言只是一组规范,而编译器是将这些规范解释到对应的操作系统的机器指令。所以不同的平台要用他们自己的编译器
另一种语言JAVA,与之相反,是跨平台的。理论上使用一个编译器生成的可执行文件,可以运行在任意一个操作系统上。这是JAVA语言与C++等语言重大不同之一。当然,跨平台的前提是,各个操作系统都有对应的JAVA虚拟机。即,Java程序是基于JAVA虚拟机运行的,而不是直接与系统交互。