是否有任何USB棒可运行,无安装,跨平台的软件框架(带GUI)?

时间:2009-05-17 07:14:13

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

是否有人知道具有以下属性的良好软件开发框架或类似内容?

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

其中较为柔和的要求是对最常见的后端功能进行一组抽象,例如套接字,文件IO等(通常需要一些特定于平台的调整),并支持Python等优秀语言或C ++,虽然学习一门新课程(即不是perl)通常很有趣。

我认为可能的候选人是Qt 4.5或以上(但IFAIK Qt软件不会在没有任何安装的情况下在Vista上运行(?)),一些wxWidgets或者wxPython解决方案,也许是gtkmm。我发现的例子在一个或另一个要求上失败了。这并不意味着没有这样的例子,只是意味着我没有找到任何例子。所以我想知道是否有人知道有任何现有的解决方案吗?

一些澄清;

  • “框架”是指像Qt或gtkmm或带有小部件包的python。
  • 这是关于能够在没有安装的情况下在多个平台上运行成品,而不是拥有便携式开发环境。
  • 这不是靴子。
  • 如果需要,可以专门为不同的目标构建软件。

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

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

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

对用例的另一种看法是,我有五台新安装的机器,分别是Vista,XP,OSX,Ubuntu和Kubuntu。我想,无需在机器上安装任何新东西,就可以在这五台机器中的每一台机器上运行相同的软件(满足上述GUI要求等)(但如果需要,可以从不同的机器上运行)在棍子上捆绑。)

这可能吗?

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

8 个答案:

答案 0 :(得分:4)

您提及wxWidgets但忽略其中至少有一项要求失败。

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

  

跨平台:它应该可以在XP,Vista,OSX和Linux的常见版本上运行。

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

  

无需安装:无需将任何内容复制到主机即可从USB记忆棒运行软件。

请参阅上一点,您需要指定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,但我不明白它为什么不应该在那里。

答案 1 :(得分:4)

的Java。

  • 它有GUI支持。

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

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

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

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

答案 2 :(得分:3)

要考虑的其他事情是HTML + Javascript。 :d

答案 3 :(得分:2)

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

答案 4 :(得分:1)

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

副标题是

  

使用USB密钥随身携带Java工作区

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

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

答案 5 :(得分:0)

嗯,这取决于'包'的含义。 Kylix差不多就是这样的事情。这是基于QT的,它允许你编写一次并编译为Windows + Linux。但是,它不是一个开源解决方案。

答案 6 :(得分:0)

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

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

答案 7 :(得分:0)

Tclkit是一个单独的自包含Tcl / Tk系统。我的mac版本大约是3.8兆。您可以获得几乎任何现代操作系统的版本。我带着一个有mac,windows和linux二进制文件的拇指驱动器,所以我可以在任何平台上运行我的脚本。无需安装,只需将文件复制到任何地方即可。

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