平台无关和跨平台有什么区别?

时间:2011-07-14 13:27:01

标签: cross-platform libraries virtual-machine platform-independent

我见过很多C / C ++库和Gui工具包。其中有一些像GTK +,Qt,Swing等声称是平台独立的。而有些人,如WxWidgets,SWT等声称是交叉平台。起初我认为这只是一个措辞的改变,但这些术语的使用已经开始令人怀疑。 的区别是什么?

4 个答案:

答案 0 :(得分:11)

跨平台仅表示您支持多个平台。它通常意味着Linux,Mac和Windows。与平台无关意味着您支持您的语言支持的任何平台 - 即,您不依赖于语言规范中未指定的任何行为。然而,这只是我个人的意见,大多数用途只是将它们都称为“多平台”,通常是“Windows和......”。

答案 1 :(得分:6)

对于它的价值,这就是Wikipedia对此事所说的话:

  

为了将软件视为跨平台,它必须能够在多个计算机体系结构或操作系统上运行。

     

独立于平台的软件不依赖于任何单一平台的任何特殊功能,或者,如果有,则处理这些特殊功能,以便它可以处理多个平台

答案 2 :(得分:2)

“平台无关”通常是用高级语言编写的程序,不需要重新编译或调整另一个平台,并且可以“按原样”运行(Java,大多数Perl脚本等)只要特定平台实现语言运行时。当程序下面有层处理不同平台(VM或解释器)时,这是可能的。

“跨平台”意味着可以针对多个平台编译/调整程序,但不能针对任何平台进行编译/调整。想想C和C ++代码中的#ifdef

答案 3 :(得分:0)

跨平台意味着您的程序可以在Windows,Linux和Mac等不同平台上运行。

独立于平台意味着您的代码可以在任何地方运行一次编写,即,您无需更改代码即可在不同平台上运行

所有独立于平台的程序都是跨平台的,反之亦然