代码之家  ›  专栏  ›  技术社区  ›  Kieran Senior

跨平台ObjuleC/C++开发

  •  8
  • Kieran Senior  · 技术社区  · 16 年前

    我在一个开发团队中工作,我们中的一个专门在Windows下工作,我主要工作在Mac OS X。我们希望在C + +或ObjuleC中开发基于C的应用程序,但是我不太了解如何进行跨平台开发项目。

    使用Mac OS X在C++中工作是可行的吗?显然,它们面向Objto-C,但对C++也有同样的支持。这些语言的跨平台开发怎么样?我会使用Boost和某种UI库。

    有没有人在为多个平台开发方面有经验,但允许应用程序在不需要虚拟机的情况下本地运行?

    编辑 :现在有很多答案我想标记为正确。Qt似乎是在C++中发展和发展的方式。很可能这是针对*nix、os x和windows的,所以这对我们个人来说是最好的选择。如果我能避免编写Objto-C,那么团队坚持C++,那就更好了。如果我必须用Objective-C编写图形用户界面,并进行混合和匹配,那么这也不太麻烦。

    5 回复  |  直到 13 年前
        1
  •  9
  •   Wladimir Palant    13 年前

    You could look at Qt . 我已经在Windows、Linux和Mac OSX项目中成功地使用了它。

        2
  •  11
  •   Lyndsey Ferguson    16 年前

    我在一家软件公司工作,使用C++、MFC和Objtovi-C为Mac OS X和Windows制作软件。

    是的,这是绝对可能的。

    如果您在C++中开发应用程序的“核心”,您可能会得到最好的服务。在MVC应用程序中,C++部分将是模型,也可能是控制器。对于接口到GUI和其他操作系统特定接口的代码,您应该使用本机API:Mac OS X上的Objective-C和Windows XP上的C。

    Mac的好处是可以将C++和Objul-C编译在一起。甚至可以有ObjuleC++,其中C++和Objto-C在同一编译单元中编译。不幸的是,你不能用C语言来做这件事(有一种叫做托管C++的东西,它是一种不同的野兽)。

    我将避免跨平台框架,如qt和wxwidgets。它们都允许您开发跨平台的应用程序,但是这些应用程序的外观和感觉是不可比拟的。不过,我对wxwidgets比较熟悉,它的设计主要面向WindowsMFC应用程序设计范式。

    编辑时间:2009年5月14日上午9:44东部时间: 如果qt现在允许 本地平台的外观和感觉,这可能是一个不错的选择。我还没有看过最新的产品,所以您可能想在设计自己的框架之前先看看这个框架。这个决定应该在检查应用程序的结果以及您对Qt所要求的设计范例有多满意之后做出。

        3
  •  4
  •   Pablo Santa Cruz    16 年前

    我使用的是一个用C或C++编写的公共库,其中包含了应用程序的所有核心功能。

    假设你正在建立一个纸牌游戏。因此,您将拥有纯C++(主要是平台无关)库中的核心类。

    • 珊瑚虫

    然后,您将有单独的UI项目,每个平台对应一个要部署纸牌的项目:

    • Isolitaire(Objective-C,基于多点触控可可的iPhoneOS)
    • Mac纸牌(Objective-C,基于可可的Mac OS X)
    • WinSolitaire(C++,Win32或基于C的Windows窗体)
    • GSolitaire(C++,GNOM/GTK为Linux/UNIX的基础)

    这是更多的工作,但在我看来,最终的产品肯定比使用平台独立的小部件集(如 QT wxWidgets .

    尽管如此,如果您要在一家完全控制部署环境的公司内部部署您的产品,并且您不太关心结果产品在不同平台上的行为,那么您绝对可以使用通用API来处理所有事情(qt、wxwidgets或您可能遇到的任何其他API)。

        4
  •  1
  •   Hejazzman    16 年前

    使用Mac OS X在C++中工作是可行的吗?显然,它们面向Objto-C,但对C++也有同样的支持。

    是的,有。

    在OSX中,你可以用C++做任何你想做的事情,例如在Linux上你可以用C++做的任何事情。GCC的C++编译器、C++库、ET都有支持。XCODEL为C++的工作提供了支持。

    你甚至可以用Objul-C++与Objy-C混合C++(注意,这对于GUI工作来说是不可移植的)。

    这些语言的跨平台开发怎么样?我会使用Boost和某种UI库。

    我相信你最好的选择是 QT .

    它是一个稳定的C++库,它是跨平台(Windows、OSX、Linux等等),已经存在了十多年,得到了很好的支持,其中有许多商业应用程序(Skype,Adobe PS图象处理软件相册)和一个用它编写的开源软件(KDE桌面为初学者)。除了图形用户界面之外,它还提供了很多东西(容器类、XML、数据库连接等)。

    您可以使用最新的Qt免费开发开源和专有(闭源)应用程序,而且图书馆最近被一家大型跨国公司诺基亚收购,所以它不会很快消失。

    除了库之外,Qt还附带了一个IDE和一个可视化窗体设计器(都是免费的)。

    其他跨平台的GUI库也适用于OS X。 wxWidgets , gtkmm ,等)。

        5
  •  0
  •   Kevin    16 年前

    有人在这方面有经验吗 为多个平台开发 允许应用程序以本机方式运行 不需要虚拟机?

    略微。确保将所有特定于平台的代码都包装起来。 这样,您作为主应用程序或库就不需要引用特定于平台的代码。当移植到另一个平台时,这会使移植变得更加容易。