11

有谁知道具有以下属性的良好软件开发框架或类似框架?

  • 跨平台:应该可以在 XP、Vista、OSX 和常见的 Linux 版本(如 Ubuntu 和 Kubuntu)上运行。
  • 无需安装:能够从 U 盘运行软件,而无需将任何内容复制到主机。
  • 有良好的 GUI 支持(这就是为什么这个问题没有给出合适的答案,据我所知)。
  • 许可许可,例如 LGPL 或 BSD 等。

较软的要求包括为最常见的后端功能提供一组抽象,例如套接字、文件 IO 等(通常需要一些特定于平台的适应),并支持良好的语言,例如 Python 或 C++,不过学习一个新的(即不是 perl)通常很有趣。

我认为可能的候选人是 Qt 4.5 或更高版本(但如果没有任何安装,IFAIK Qt 软件将无法在 Vista 上运行(?)),一些 wxWidgets 或 wxPython 解决方案,也许是 gtkmm。我发现的示例在其中一项或多项要求上都失败了。这并不意味着不存在这样的例子,它只是意味着我没有找到任何例子。所以我想知道是否有人知道任何现有的解决方案?

一些说明;

  • “框架”是指带有小部件包的 Qt 或 gtkmm 或 python。
  • 这是关于能够在多个平台上运行成品,从一根棍子,无需安装,而不是拥有一个可移植的开发环境。
  • 它不是启动棒。
  • 如有必要,可以专门为不同的目标构建软件。

我看到的用例是您拥有一些您依赖的软件(例如项目规划、信息管理、分析工具或类似工具):

  • 不依赖于互联网连接可用。
  • 在不同的主机上运行,​​安装任何东西都不是很好。
  • 由用户通过物理介质(如 U 盘)移动。
  • 在不同的操作系统上运行,例如 Windows、Vista、Ubuntu、OSX。
  • 在这些不同的主机上处理相同的数据(数据可以存储在主机上或存储棒上)。
  • 捆绑框架的大小并没有真正受到限制(除非它是几千兆字节,这不太现实)。

只要软件行为相同并且在不同目标上运行时可以处理相同的数据,在棒上进行并行安装也是可以的。

对用例的不同看法是,我面前有五台新安装的机器,分别是 Vista、XP、OSX、Ubuntu 和 Kubuntu。我想,无需在机器上安装任何新东西,就能够在这五台机器上的每台机器上从单个 USB 记忆棒(满足上述 GUI 要求等)运行相同的软件(不过,如果有必要,从不同的捆绑在棍子上)。

这可能吗?

编辑:我对使用一些小部件和 sqlite 数据库的 Qt 应用程序进行了一些试验。很容易让它在 ubuntu dist 和 osx 上工作。对于 windows xp 和 vista,我必须将 QtCored4.dll、QtGuid4.dll、QtSqld4.dll 和 mingwm10.dll 复制到分发目录(这是调试代码),并将 qsqlited4.dll 复制到分发中名为“sqldrivers”的文件夹中目录。

4

8 回答 8

4

您提到wxWidgets但将其视为未满足至少一项要求而将其驳回。

我不知道您的要求是什么以及 wxWidgets 以何种方式不适合您,但 IMO 它确实满足了它们:

跨平台:应该可以在 XP、Vista、OSX 和普通版本的 Linux 上运行。

它确实可以在这些平台上运行,但是“通用版本的 Linux”还不够好,因为您永远无法确定是否会安装 wxGTK 所需的 GUI 库(不应静态链接到)。然而,这对于其他解决方案也是一个问题,除非你打算把所有东西都放在棒上。

无需安装:能够从 U 盘运行软件,而无需将任何内容复制到主机。

请参阅上一点,您需要指定 Linux 上需要哪些库。您也可以在构建时指定不使用某些系统提供的库(例如用于图形、压缩、正则表达式),而是使用 wxWidgets 内部库。

有良好的 GUI 支持

查看。

许可许可,例如 LGPL 或 BSD 等。

查看。您也可以将 wxWidgets 静态链接到您的应用程序中。

支持良好的语言,例如 Python 或 C++

两者都支持,并且还绑定到其他语言。

为最常见的后端功能(例如套接字、文件 IO 等)提供一组抽象

它确实有一些类似的抽象,但您也可以链接到其他跨平台库。

我们将 wxWidgets 用于FlameRobin,这是 Firebird SQL 服务器的图形管理程序。它具有 Windows、Linux 和 Mac OS X 的活动端口,并且已经为至少一些 BSD 变体和 Solaris 进行了编译。它肯定是从 Windows 上的一根棍子上运行的,我没有尝试过使用 Linux 或 Mac OS X,但我不明白为什么它也不应该在那里。

于 2009-05-17T09:03:40.863 回答
4

爪哇。

  • 它具有 GUI 支持。

  • 它提供您的网络/文件/等。抽象。

  • 它是跨平台的。您能想到的大多数平台都有可用的 JRE。

  • 无需安装 JRE。大多数用户可能已经拥有一个,如果没有,您可以立即运行适当的 JRE。

  • 您可以为各种平台提供多个启动脚本,以在适当的 JRE 下运行应用程序。

于 2009-05-17T10:24:54.257 回答
3

其他需要考虑的是 HTML+Javascript。:D

于 2009-05-17T11:46:38.087 回答
2

你可以看看Mono,它是跨平台的,有 GUI(GTK+ 或 Winforms 2.0),我可以在不安装的情况下执行代码。

于 2009-05-17T08:26:57.350 回答
1

这可能不是跨平台的,但可能更好,它甚至不使用平台:linux on a stick :-)

副标题是

使用 USB 密钥将您的 Java 工作区带到任何地方

这里有 java 和 eclipse,但当然没有什么能阻止你。

http://knol.google.com/k/inderjeet-singh/installing-a-ubuntu-hardy-heron-java/1j9pj7d01g86i/2#

于 2009-05-17T07:48:01.327 回答
0

我在这个链接http://www.24hsoftware.com/DevelopersForum/CrossPlatform-C-Library.html中问了一个类似的问题, 最好的答案似乎是 QT。

我已经开始使用 QT,但它并不像我预期的那么容易,主要是由于 DLL 地狱、Winsxs 地狱和清单地狱造成的部署问题。

于 2009-06-17T16:26:01.107 回答
0

好吧,这取决于您所说的“包装”是什么意思。Kylix 几乎是这样的人。它是基于 QT 的,它允许您编写一次并针对 Windows + Linux 进行编译。但是,它不是一个开源解决方案。

于 2009-05-17T07:34:11.937 回答
0

Tclkit是一个单文件、自包含的 Tcl/Tk 系统。我拥有的 mac 版本约为 3.8 兆。您可以获得几乎适用于任何现代操作系统的版本。我随身携带一个带有 mac、windows 和 linux 二进制文件的拇指驱动器,这样我就可以在任何平台上运行我的脚本。无需安装,只需将一个文件复制到任何你想要的地方。

最新版本的 tcklit 使用原生的主题小部件(尽管,在 *nix 上确实没有单一的“原生”小部件集......)

于 2010-01-25T22:54:52.617 回答