是否有任何 USB 记忆棒可运行、免安装、跨平台软件框架(带 GUI)?
有谁知道一个好的软件开发框架或具有以下属性的类似框架?
- 跨平台:它应该可以在 XP、Vista、OSX 和常见版本的 Linux(例如 Ubuntu 和 Kubuntu)上运行。
- 无需安装:能够从 USB 记忆棒运行软件,而无需将任何内容复制到主机。
- 具有良好的 GUI 支持(这就是为什么这个问题据我所知,没有给出合适的答案)。
- 宽松的许可,例如 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。 我希望,无需在机器上安装任何新的东西,就能够在这五台机器上的每台机器上从单个 USB 记忆棒运行相同的软件(满足上述 GUI 要求等)(不过,如果需要的话,可以从不同的机器上运行相同的软件)捆在棍子上)。
这可能吗?
编辑: 我对使用一些小部件和 sqlite 数据库的 Qt 应用程序进行了一些实验。 让它在 ubuntu dist 和 osx 上运行很容易。 对于 Windows XP 和 Vista,我必须将 QtCored4.dll、QtGuid4.dll、QtSqld4.dll 和 mingwm10.dll 复制到分发目录(这是调试代码),并将 qsqlited4.dll 复制到分发中名为“sqldrivers”的文件夹目录。
Does anyone know of a good software development framework or similar that has the following properties?
- Cross platform: it should be runnable on XP, Vista, OSX and common versions of Linux (such as Ubuntu and Kubuntu).
- No installation: Be able to run the software from a USB stick without having to copy anything to the host machine.
- Have good GUI support (this is why this question doesn't give a suitable answer, as far as I can tell).
- Permissive licensing such as LGPL or BSD or such.
Among the softer requirements are having a set of abstractions for the most common backend functionality, such as sockets, file IO, and so on (There is usually some platform specific adaptations necessary), and supporting a good language such as Python or C++, though it is usually fun to learn a new one (i.e. not perl).
I think possible candidates are Qt 4.5 or above (but IFAIK Qt software will not run on Vista without any installation(?)), some wxWidgets or maybe wxPython solution, perhaps gtkmm. The examples I have found have failed on one or another of the requirements. This does not mean that no such examples exist, it just means that I have not found any. So I was wondering if anyone out there know of any existing solutions to this?
Some clarifications;
- By "framework" I mean something like Qt or gtkmm or python with a widget package.
- This is about being able to run the finished product on multiple platforms, from a stick, without installation, it is not about having a portable development environment.
- It is not a boot stick.
- It is ok to have to build the software specifically for the different targets, if necessary.
The use case I am seeing is that you have some software that you rely on (such as project planning, administration of information, analysis tools or similar) that:
- does not rely on having an internet connection being available.
- is run on different host machines where it is not really ok to install anything.
- is moved by a user via a physical medium (such as a USB stick).
- is run on different operating systems, such as Windows, Vista, Ubuntu, OSX.
- works on the same data on these different hosts (the data can be stored on the host or on the stick).
- is not really restricted in how big the bundled framework is (unless it is several gigabytes, which is not really realistic).
It is also ok to have parallel installations on the stick as long as the software behaves the same and can work on the same data when run on the different targets.
A different view on the use case would be that I have five newly installed machines with Vista, XP, OSX, Ubuntu and Kubuntu respectively in front of me. I would like to, without having to install anything new on the machines, be able to run the same software from a single USB stick (meeting the above GUI requirements and so on) on each of these five machines (though, if necessary from different bundles on the stick).
Is this possible?
Edit:
I have experimented a little with a Qt app that uses some widgets and a sqlite database. It was easy to get it to work on an ubuntu dist and on osx. For windows xp and vista I had to copy QtCored4.dll, QtGuid4.dll, QtSqld4.dll and mingwm10.dll to distribution directory (this was debug code) and I copied the qsqlited4.dll to a folder named "sqldrivers" in the distribution directory.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
您提到 wxWidgets 但将其驳回,因为它至少不符合其中一项要求。
我不知道你的要求是什么,以及 wxWidgets 在什么方面不适合你,但在我看来,它确实满足了这些要求:
它确实可以在这些平台上运行,但“Linux 的通用版本”还不够好,因为您永远无法确定是否会安装 wxGTK 所需的 GUI 库(不应静态链接到)。 然而,这对于其他解决方案来说也是一个问题,除非您计划将所有东西都放在棍子上。
请参阅上一点,您需要指定 Linux 上需要哪些库。 您还可以在构建时指定不使用某些系统提供的库(例如图形、压缩、正则表达式),而是使用 wxWidgets 内部库。
检查。
查看。 您也可以将 wxWidgets 静态链接到您的应用程序中。
两者都支持,并且也有与其他语言的绑定。
它确实有一些类似的抽象,但您也可以链接到其他跨平台库。
我们将 wxWidgets 用于 FlameRobin,Firebird SQL 服务器的图形管理程序。 它具有到 Windows、Linux 和 Mac OS X 的活动端口,并且至少已针对某些 BSD 变体和 Solaris 进行了编译。 它肯定可以在 Windows 上运行,我还没有尝试过 Linux 或 Mac OS X,但我不明白为什么它不应该在那里。
You mention wxWidgets but dismiss it as failing at least one of the requirements.
I don't know what your requirements are and in what way wxWidgets wouldn't work for you, but IMO it does fulfill them:
It does run on those platforms, but "common versions of Linux" isn't good enough, as you can never be sure that the necessary GUI libraries for wxGTK (which should not be linked to statically) will be installed. This is however a problem for other solutions as well, unless you plan to put everything onto the stick.
See the previous point, you would need to specify which libraries are needed on Linux. Also you could specify at build time not to use some of the system-provided libraries (for example for graphics, compression, regexes) but to use the wxWidgets-internal libraries instead.
Check.
Check. You can statically link wxWidgets into your application too.
Supports both, and there are bindings to other languages as well.
It does have some abstractions like that, but you can link to other cross-platform libraries as well.
We use wxWidgets for FlameRobin, a graphical administration program for the Firebird SQL server. It has active ports to Windows, Linux and Mac OS X, and has been compiled for at least some BSD variant and Solaris as well. It definitely runs from a stick on Windows, I haven't tried with Linux or Mac OS X, but I don't see why it shouldn't there too.
爪哇。
它有 GUI 支持。
它提供您的网络/文件/等。 抽象。
它是跨平台的。 您能想到的大多数平台都有可用的 JRE。
无需安装 JRE。 大多数用户可能已经拥有一个,如果没有,您可以立即运行适当的 JRE。
您可以为各种平台提供多个启动脚本,以便在适当的 JRE 下运行应用程序。
Java.
It has GUI support.
It provides your network/file/etc. abstractions.
It is cross-platform. Most platforms you can think of have a JRE available.
No need to install a JRE. Most users probably already have one, and if not, you can run the appropriate JRE right off the stick.
You can provide several startup scripts for various platforms to run the app under the appropriate JRE.
其他需要考虑的是 HTML+Javascript。 :D
Something else to consider is HTML+Javascript. :D
您可以查看 Mono 它是跨平台的,具有 GUI(GTK+ 或 Winforms 2.0),我可以执行代码无需安装。
You can look at Mono it cross platform, has GUI (GTK+, or Winforms 2.0) and I can execute code without installing.
这可能不是跨平台的,但可能更好,它甚至不使用平台:linux on a Stick :-)
副标题是
Here 与 java 和 eclipse 随身携带 Java 工作区,但当然没有什么可以阻止您。
http://knol .google.com/k/inderjeet-singh/installing-a-ubuntu-hardy-heron-java/1j9pj7d01g86i/2#
This might not be crossplatform, but is maybe even better, it dont even use the platform : linux on a stick :-)
The subtitle is
Here with java and eclipse, but nothing stops you there of course.
http://knol.google.com/k/inderjeet-singh/installing-a-ubuntu-hardy-heron-java/1j9pj7d01g86i/2#
嗯,这取决于你所说的“包”是什么意思。 Kylix 几乎就是这样的东西。 它基于 QT,允许您编写一次并为 Windows + Linux 进行编译。 然而,它不是一个开源解决方案。
Well, it depends on what you mean by 'package'. Kylix came close to being such a thing. It was QT based, and it allowed you to write once and compile for Windows + Linux. However, it was not an open source solution.
我在此链接中问了类似的问题
http://www.24hsoftware.com/DevelopersForum/CrossPlatform-C-Library。 html
最好的答案似乎是QT。
我已经开始使用QT,但它并不像我想象的那么容易,主要是由于DLL地狱、Winsxs地狱和清单地狱造成的部署问题。
I asked a similar question in this link
http://www.24hsoftware.com/DevelopersForum/CrossPlatform-C-Library.html
and the best asnswer seems to be QT.
I have started using QT, but it is not as easy as I expected mainly due to deployment problems due to the DLL hell, Winsxs hell and manifest hell.
Tclkit 是一个单文件、独立的 Tcl/Tk 系统。 我的mac版本大约是3.8兆。 您可以获得几乎任何现代操作系统的版本。 我随身携带一个拇指驱动器,里面有 Mac、Windows 和 Linux 二进制文件,这样我就可以在任何平台上运行我的脚本。 无需安装,只需将一个文件复制到任何您想要的位置即可。
tcklit 的最新版本使用本机、主题小部件(尽管在 *nix 上确实没有一组“本机”小部件...)
Tclkit is a single-file, self-contained Tcl/Tk system. The mac version I have is about 3.8 megs. You can get a version for just about any modern OS. I carry around a thumb drive that has mac, windows and linux binaries so I can run my scripts on any platform. No install is required, just copy one file wherever you want.
The most recent versions of tcklit use native, themed widgets (though, on *nix there really isn't a single "native" set of widgets...)