【发布时间】:2010-09-08 20:34:13
【问题描述】:
在开源项目上大惊小怪,为什么仍然没有一个强大的标准可以让你制作可移植的代码(我的意思是C/C++而不是Java或C#)
每个人都喜欢自己做汤。
甚至还有一些第三方库,例如Apache Portable Runtime。
【问题讨论】:
标签: c++ c portability
在开源项目上大惊小怪,为什么仍然没有一个强大的标准可以让你制作可移植的代码(我的意思是C/C++而不是Java或C#)
每个人都喜欢自己做汤。
甚至还有一些第三方库,例如Apache Portable Runtime。
【问题讨论】:
标签: c++ c portability
是的,没有标准,但是像 Qt 和 boost 这样的库可以让您在进行跨平台开发时变得更加轻松。
【讨论】:
wxwidgets 是大多数窗口管理器的原生 GUI 小部件上的一个很好的抽象层。
【讨论】:
我认为没有任何人同意任何单一库的主要原因是每个人的要求都不同。当您想要包装系统库时,您通常需要对用例的内容做出一些假设,除非您想让包装器变得庞大且无法使用。我认为这可能是没有单一、通用的跨平台运行时的主要原因。
对于 GUI,原因可能是每个平台都有自己的 UI 约定,您不能编写一个适合所有的 GUI,您只会得到一个只适合一个甚至根本不适合的 GUI。
【讨论】:
有许多库本身可以使跨平台开发变得更容易,但是为所有平台制作一个完整的包装器最终要么是小而高度定制的,要么是庞大而完全荒谬的。
按照逻辑得出的结论是,操作系统所有方面的完整包装器成为整个虚拟运行时。您不妨自己制作编程语言。
【讨论】:
The ADAPTIVE Communication Environment (ACE) 是一个出色的面向对象框架,它为所有低级操作系统功能(如线程、套接字、互斥锁等)提供跨平台支持。它与大量编译器和操作系统一起运行。
【讨论】:
【讨论】:
如果您确保它可以与 GCC 和 MS VC++ 一起干净地编译,那么移植到其他地方就不需要额外的努力了。
【讨论】: