1 爲何C++編譯的二進制文件不能在 linux和windows下通用【度娘】
可以這麼理解,語言只是一組規範,而編譯器是將這些規範解釋到對應的操作系統的機器指令。所以不同的平臺要用他們自己的編譯器
另一種語言JAVA,與之相反,是跨平臺的。理論上使用一個編譯器生成的可執行文件,可以運行在任意一個操作系統上。這是JAVA語言與C++等語言重大不同之一。當然,跨平臺的前提是,各個操作系統都有對應的JAVA虛擬機。即,Java程序是基於JAVA虛擬機運行的,而不是直接與系統交互。1 爲何C++編譯的二進制文件不能在 linux和windows下通用【度娘】
可以這麼理解,語言只是一組規範,而編譯器是將這些規範解釋到對應的操作系統的機器指令。所以不同的平臺要用他們自己的編譯器
另一種語言JAVA,與之相反,是跨平臺的。理論上使用一個編譯器生成的可執行文件,可以運行在任意一個操作系統上。這是JAVA語言與C++等語言重大不同之一。當然,跨平臺的前提是,各個操作系統都有對應的JAVA虛擬機。即,Java程序是基於JAVA虛擬機運行的,而不是直接與系統交互。