2008-09-14 106 views
3

随着所有关于开源项目做文章,怎会有仍然不是很强的标准,使您可以移植代码(我指的是C/C++JavaC#) 大家是怎么样使它自己的汤。

甚至有一些第三方库如Apache Portable Runtime使移植的代码

回答

1

我认为没有任何单一图书馆的任何人同意的主要原因是每个人的要求都不一样。当你想打包系统库时,你通常需要对使用情况进行一些假设,除非你想让包装很大并且不可能使用。我认为这可能是没有单一的通用跨平台运行时的主要原因。

图形界面,原因是,每个平台都有自己的UI约定,你不能代码,适用于所有一个GUI,你会简单地得到一个适合只有一个,甚至根本没有。

4

是的,没有标准,但是图书馆像的Qt升压可以当你做跨平台开发你的生活变得更轻松。

1

有许多库跨平台开发更容易对自己,但做一个完整的包装适用于所有平台最终被小任和高度定制的,或块状,完全荒谬的。

传送给它的合乎逻辑的结论,对于操作系统的所有方面的完整包装成为一个完整的虚拟运行。你不妨制作你自己的编程语言。

1

The ADAPTIVE Communication Environment (ACE)是一个优秀的面向对象的框架,为所有的低级别操作系统功能(如线程,套接字,互斥锁等)提供跨平台支持。它运行在疯狂的编译器和操作系统上。

0

如果你确保它与GCC和MS VC完全编译++,这将是点点额外的努力移植到别的地方去。

+0

如果您在使用GCC和MSVC的Windows上成功构建了某些东西,则无法保证其在任何其他地方能够工作:endianness? (英特尔是小端,其他许多是大端)整数/指针大小? (16/32/64都是常见的)API? (Linux和UNIX没有WINAPI ...)我确信可以找到其他的例子。我敢打赌,在IBM z/OS上构建MSVC程序可能非常“有趣”...... – 2014-12-30 11:49:10

3

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

1

作为语言的C和C++是标准语言。如果您在编码时密切关注他们的规则(这意味着不使用特定于供应商的扩展),您的代码应该是可移植的,并且您应该可以在任何OS上使用任何现代编译器进行编译。

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

我认为最populars是Qt(商业)和wxWidgets(FOSS)。根据wikipedia还有更多。

也有提升,而不是一个GUI库boost是一个非常好的补充C++的STL。事实上,一些升压库将被添加到下一个C++标准中。