桌面应用程序可以用C ++开发,可以在Windows和Mac OS上运行吗?

时间:2011-01-27 09:54:29

标签: c++ windows macos cross-platform portability

我正在努力节省一些资金并开发一个适用于Windows和Mac OS的桌面应用程序。这可能吗?我们可以用C ++做,然后通过一些修复和调整,仍然可以在两个操作系统上重用相同的应用程序吗?

4 个答案:

答案 0 :(得分:6)

是的,这是可能的。由于操作系统存在差异,因此某些代码可能会有所不同。

  • 您应该使用GUI的公共库,例如Qt:http://qt.nokia.com/
    值得注意的是,Qt为桌面带来了更多的跨平台功能,因此请熟悉它。
  • 处理时会有一些差异
    • 文件路径(C:在Mac上不存在,\和/是路径分隔符等)
    • 文件结尾不同(Windows中为CrLf,Mac中为Lf)
  • 您需要编译为两个不同的目标CPU。大多数C ++编译器都可以做到这一点。
  • 两者都可以使用相同的代码,您可以根据编译器的目标操作系统定义要包含的区域(或不包含区域)。

Google就是一个跨域开发指南,人们之前已经做过这样的事情。 :)

它可能没有关系,但仍然值得注意(因为你说“省钱”),Java和Mono Project(。Net,Qt)允许你编写技术有限的跨平台应用程序底层平台。它们是更高级别的语言,通常被认为是节省时间(但这是一个单独的讨论。)

答案 1 :(得分:2)

扩展我的评论:

不要

在便携式C ++中编写库代码;尽可能多地放置库中的功能,确保您随时学习特定于平台的API(可能是Cocoa和.NET),因此库的接口至少适合于这两者。

然后将您的库包装在本机二进制文件中;确保您注意应用程序在每个平台上的外观以及它们的感觉。

构建一个看起来像X11应用程序的应用程序,并以某种方式在Gnome应用程序,KDE应用程序,OS X应用程序和Windows应用程序之间进行操作,真的会伤害用户体验。< / p>

<强>严重

答案 2 :(得分:1)

WxWidgets

这个问题得到asked a lot,另见: this questionthis onethis one等。

答案 3 :(得分:0)

来到这里参加晚会!

我正处于完成跨平台商业应用程序的最后阶段(目前OS / X和Windows,后来可能是Linux或iOS)。

我们正在使用一个名为Juce的开源,跨平台C ++开发库,我不能说得太多。它的功能非常全面,代码坚固且高质量,您可以从相同的代码库中显然为Windows,OS / X,Linux,iOS和Android构建(我们只尝试过前两个,但其他开发人员是显然报告了其他平台的成功。)

特别好的是,首席开发人员在他的公告板上非常活跃,对问题报告反应非常敏捷。

此外,您可以根据GPL许可图书馆,并且他们也拥有价格合理的商业许可证。

Juce在做数字音频应用的人群中非常受欢迎 - 事实上,据我所知,很多或者大多数顶级商业数字音频应用程序都使用这个系统 - 但它功能非常全,速度非常快,应该算是顶级的任何跨平台开发应用程序的候选者。