【问题标题】:Pure GUI apps for Win/Linux/Mac in C++ with G++用于 Win/Linux/Mac 的纯 GUI 应用程序,使用 C++ 和 G++
【发布时间】:2023-04-04 07:26:01
【问题描述】:

适用于 Win/Linux/Mac 的 C/C++ 图形用户界面应用程序:

我想知道如何写一个pure”、“native,”“API-level 用 C++ 编写的适用于 Windows、Linux 和 Mac 的应用程序。

我不想要“一个代码随处运行”,而是每个操作系统的本地代码。


Windows 解决方案:

只需使用Mingw/Win32 API;它非常简单明了。这样我就喜欢在 Windows 下编程了。


Linux 解决方案:

如果我使用例如wxWidgets-dev/GNU G++,如果用户不安装wxWidgets,我的应用程序就无法在PC/Linux 上运行?如果没有,我如何在我的程序中包含 wxWidgets 库?


Mac 解决方案:

Objective-C++/GNU G++ 是解决方案吗?还是Carbon/C++/GNU G++ 的解决方案?

【问题讨论】:

  • Windows = 简单,mac = 困难,linux = ?
  • No No No lool,Windows = 非常简单,Linux = 简单,Mac = ?
  • 如果您发现 Linux 开发很容易,那么您会发现 Mac 开发很容易。 XCode 实际上相当不错,即使所有其他方法都失败了,只需打开一个终端并运行 makecmake 或任何你在 Linux 中想要的东西。
  • 对我来说,它不是关于命令行方法,而是关于支持的编程语言!为什么我有一个选择来开发一个纯 mac 应用程序?是Objective-C !!! C++ 呢?我发现网上评论说Objective-C++不是一个好方法..

标签: c++ cross-platform gui-toolkit


【解决方案1】:

Mac

在 Mac 案例中,您只想启动 XCode 并使用 Objective-C。 Objective-C++ 主要用于让您从 Objective-C 访问现有的 C++ 库。

不要使用 Carbon,它已被弃用。它只是为了让 Mac OS 9 的移植更容易。

Linux

这很难,因为实际上无法保证任何事情。您可以肯定 X Windows 会在那里,但有各种各样的库(Gnome、KDE、WxWidgets、FLTK、Motif 等)可能可用也可能不可用。

在过去,您可以期望 Athena 小部件可用,因为它们与 X Windows 一起提供,但它们看起来很糟糕(介于 Mac OS 3 和 Palm OS 1 之间),几乎没有人愿意再使用它们。

因此,您几乎必须选择一个库/工具包并使用它,并期望您的用户安装它。如今,大多数发行版都使依赖项的安装变得非常容易,因此它不像在 Windows 上安装 wxWidgets 那样烦人。

【讨论】:

  • Linux 上确实没有真正的“标准”库,但 Qt 和 GTK+ 是相当安全的选择,所有主要发行版都将它们安装在默认桌面安装中。其他的也不应该是问题,因为所有发行版都允许轻松安装。
  • Mac:Objective-C/Cocoa。 Linux:GTK+/C/C++。
  • 谢谢 Mike DeSimone 和 Sleske 以及 Alexander Rafferty =)
  • 就个人而言,我更喜欢 Qt/KDE/C++ 而不是 Gtk+/C/C++。这是因为 1) 我更喜欢 C++ 而不是 C,以及 2) Gtk+ 的手动对象管理是疯狂的,而 Qt 从一开始就使用 C++。而且,是的,我在两者中都编写了(尽管很小)程序。如果您真的想将 Gtk+ 与 C++ 一起使用,我建议您使用 gtkmm 库(这是我早期为 Gtk+ 程序使用的库,当 Miguel de Icaza 兜售 Inti 时,他决定放弃它并重新实现 .网)。
  • Qt,勉强。它之所以获胜,是因为它使用源预处理器 (moc) 来处理 Qt 使用的一些 C++“扩展”(例如信号)。 Gtkmm 的做法是用libsigc++ 处理纯C++ 中的信号,这有点难读。查看两者的示例代码,看看你更喜欢哪一个。
猜你喜欢
  • 1970-01-01
  • 2014-05-15
  • 1970-01-01
  • 2012-06-17
  • 2012-06-18
  • 1970-01-01
  • 2011-02-03
  • 1970-01-01
  • 2016-11-02
相关资源
最近更新 更多