【问题标题】:Are there any USB stick runnable, no-install, cross platform software frameworks (with GUI)?是否有任何 USB 记忆棒可运行、免安装、跨平台软件框架(带有 GUI)?
【发布时间】:2010-10-26 19:42:45
【问题描述】:

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

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

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

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

一些说明;

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

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

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

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

对用例的不同看法是,我面前有五台新安装的机器,分别是 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”的文件夹中目录。

【问题讨论】:

  • Last.FM 使用 QT,在 Vista 上运行良好。

标签: frameworks installation cross-platform portability portable-applications


【解决方案1】:

您提到了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,但我不明白为什么它也不应该在那里。

【讨论】:

  • 谢谢。好资料。实际上,我不介意在棍子上放“大”包,因为这些天它们非常便宜。我试图将必须在目标上安装任何东西的需要/风险降到最低。我会在问题中添加一些用例。
  • 我在您的要求中仍然看不到任何会消除 wxWidgets 解决方案的内容。如果您打算与 Linux 桌面集成,我在回答中提到的问题区域很可能与其他解决方案也存在问题。对于每个解决方案,您都必须为要在其上运行的目标操作系统定义一些基线要求。
  • 我明白了。你认为可以捆绑 wxGTK 库来避免安装问题吗?还是我误解了你的论点?
  • 对不起,我的回答可能不清楚。您可以静态链接 wxGTK,但您不应该(甚至不能)静态链接 GTK 库本身。这对于所有使用 GTK 以在 GNOME 桌面上具有原生外观的框架来说都是一个问题。无论如何,我们为 MSW 和 Mac OS X 静态链接 wxWidgets,但不要为 Linux 这样做,因为它或多或少是 Ubuntu 等发行版操作系统的一部分,并且您需要确保应用程序使用最新的和大多数无错误版本。总而言之,也许 Java 更适合您的要求。
  • 好的,我想我明白你的意思了。尽管对于某些应用程序来说,如果软件按特定版本的预期工作就足够了,而且除了纯粹的兼容性问题之外,不需要运行最新和最好的库。也许有一些可以使用的后备策略。
【解决方案2】:

Java。

  • 它有 GUI 支持。

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

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

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

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

【讨论】:

  • 谢谢,这值得研究。
  • +1。我真的能想到的唯一选择。 Mono 有时会出现一些小问题(如果您实际上在 Mono 中开发应用程序,不知道这是否适用)
  • 我没有玩过 Mono,但我对它的真正“兼容性”持谨慎态度。
【解决方案3】:

另外需要考虑的是 HTML+Javascript。 :D

【讨论】:

  • 您的意思是仅在浏览器中执行某种无服务器执行吗?
  • 是的。它是非常广泛支持(如果有的话)的平台,但你可能会在沙盒中遇到麻烦。即使没有服务器,您也可以做很多事情。不过,服务器会有所帮助:D
  • 需要大量编程,但实际上是 100% 跨平台的。不错。
【解决方案4】:

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

【讨论】:

  • 谢谢。您知道此类免安装软件的任何示例吗? IE。不需要在目标上安装单声道运行时并且不静态链接运行时(因为这似乎需要不同的许可)?
  • 我问的原因是我一直在谷歌搜索但没有找到任何示例。
  • 其实,现在我找到了一些例子:cocoa-sharp.com/…
【解决方案5】:

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

副标题是

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

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

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

【讨论】:

  • 谢谢。我对这个问题做了一些澄清。
【解决方案6】:

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

【讨论】:

  • 好吧,我想我的意思是“框架”中的“包”。我会改的。
【解决方案7】:

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

我已经开始使用 QT,但是并没有我想象的那么容易,主要是由于 DLL 地狱、Winsxs 地狱和清单地狱导致的部署问题。

【讨论】:

  • 我也试过Qt,我的经验正好相反。对于 Windows,我只是将相关的 Qt dll 放入与应用程序相同的目录中,并且我需要的 sqlite 插件必须放在插件目录中。这适用于 osx、ubuntu、xp 和 vista。当我有时间时,我会用更多的细节更新这个问题。
【解决方案8】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 2020-08-17
    相关资源
    最近更新 更多