制作便携式代码

关于开源项目的所有大惊小怪,为什么还没有一个强大的标准可以让你制作可移植的代码(我的意思是在C/C++而不是JavaC# )每个人都有点自己做汤。

甚至还有一些像Apache Portable Runtime这样的第三方库。

是的,没有标准,但Qtboost等库可以让您在进行跨平台开发时更轻松。

wxwidgets是大多数窗口管理器的本机GUI小部件上的一个很好的抽象层。

我认为没有任何一个图书馆有人同意的主要原因是每个人的要求都不同。 当你想要包装系统库时,你经常需要对用例是什么做出一些假设,除非你想让包装器变得庞大而且无法使用。 我认为这可能是没有单一,通用跨平台运行时的主要原因。

对于GUI,原因是每个平台都有自己的UI约定,你不能编写一个适合所有人的GUI,你只需要一个只适合一个甚至根本没有。

有许多库可以让他们自己更容易地进行跨平台开发,但是为所有平台制作一个完整的包装器,最终要么是小型的,要么是高度定制的,要么是大规模的,而且非常荒谬。

根据它的逻辑结论,操作系统所有方面的完整包装器成为整个虚拟运行时。 你也可以制作自己的编程语言。

ADAPTIVE通信环境(ACE)是一个出色的面向对象框架,它为所有低级操作系统function提供跨平台支持,如线程,套接字,互斥体等。它运行着大量的编译器和操作系统。

C和C ++作为语言是标准语言。 如果您在编码时严格遵循其规则(这意味着不使用特定于供应商的扩展),那么您的代码应该是可移植的,并且您应该能够在任何操作系统上使用任何现代编译器进行编译。

但是,C和C ++没有GUI库,如Java或C#,但是存在一些免费或商业GUI库,可以编写可移植的GUI应用程序。

我认为最流行的是Qt (商业)和wxWidgets (FOSS)。 根据维基百科,还有很多。

还有提升,而不是GUI库提升是对C ++的STL的一个非常好的补充。 事实上,一些升级图书馆将在下一个C ++标准中添加。

如果你确保它使用GCC和MS VC ++完全编译,那么移植到其他地方只需要很少的额外工作。