我见过很多C / C ++库和Gui工具包。其中有一些像GTK +,Qt,Swing等声称是平台独立的。而有些人,如WxWidgets,SWT等声称是交叉平台。起初我认为这只是一个措辞的改变,但这些术语的使用已经开始令人怀疑。 的区别是什么?
答案 0 :(得分:11)
跨平台仅表示您支持多个平台。它通常意味着Linux,Mac和Windows。与平台无关意味着您支持您的语言支持的任何平台 - 即,您不依赖于语言规范中未指定的任何行为。然而,这只是我个人的意见,大多数用途只是将它们都称为“多平台”,通常是“Windows和......”。
答案 1 :(得分:6)
对于它的价值,这就是Wikipedia对此事所说的话:
为了将软件视为跨平台,它必须能够在多个计算机体系结构或操作系统上运行。
独立于平台的软件不依赖于任何单一平台的任何特殊功能,或者,如果有,则处理这些特殊功能,以便它可以处理多个平台
答案 2 :(得分:2)
“平台无关”通常是用高级语言编写的程序,不需要重新编译或调整另一个平台,并且可以“按原样”运行(Java,大多数Perl脚本等)只要特定平台实现语言运行时。当程序下面有层处理不同平台(VM或解释器)时,这是可能的。
“跨平台”意味着可以针对多个平台编译/调整程序,但不能针对任何平台进行编译/调整。想想C和C ++代码中的#ifdef
。
答案 3 :(得分:0)
跨平台意味着您的程序可以在Windows,Linux和Mac等不同平台上运行。
独立于平台意味着您的代码可以在任何地方运行一次编写,即,您无需更改代码即可在不同平台上运行
所有独立于平台的程序都是跨平台的,反之亦然