有没有一种方法可以在一个平台上编写c++程序,而不需要为不同的操作系统重新编写



我知道java是独立于平台的,c++是依赖的。我想知道,如果我在Windows中编写了一个C++程序,我是否可以在不重写整个程序的情况下,以某种方式让同一个程序在不同的操作系统上运行。请记住我是编程新手。

任何一个相当体面的C++程序员,如果没有特定的理由不这样做,都会编写符合标准且可移植的代码。

那些必要的特定于平台的交互,如文件系统访问和网络,应该抽象在一层第三方库代码(例如Boost)后面,该代码在许多平台上都有等效的实现。特定于平台的因素,如不同的整数类型宽度,可以在编译器后面抽象出来(对于内置类型)。

这样,相当不错的C++程序员的代码就不会在不同的平台上更改

有时很难使代码完全可移植,但这就是目标,通常情况下,这是完全可以实现的,也是正确的做法。

然而,您通常需要为每个目标平台重新编译代码,因为处理器和操作系统差异很大,而让用机器代码编写的程序(这就是您的可执行文件)可移植是另一回事。

Google的Native Client(NaCl),如技术概述-Google Chrome中所述,就是您所询问的内容的一个示例。参见便携性;它说"将C/C++源代码编译为可移植的可执行位代码(pexe)"。

可移植性通常不是由语言决定的,而是由编译器和相关的运行时提供的。

相关内容

最新更新