frameworks - 是否有任何 USB 内存棒可运行、免安装、跨平台软件框架(带有 GUI)?

标签 frameworks installation cross-platform portability portable-applications

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

  • 跨平台:应该可以在 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。
  • 在这些不同的主机上处理相同的数据(数据可以存储在主机上或存储棒上)。
  • 捆绑框架的大小并没有真正受到限制(除非它是几个千兆字节,这不太现实)。

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

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

    最佳答案

    你提到wxWidgets但将其视为不符合至少一项要求而予以驳回。

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

    Cross platform: it should be runnable on XP, Vista, OSX and common versions of Linux.



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

    No installation: Be able to run the software from a USB stick without having to copy anything to the host machine.



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

    Have good GUI support



    查看。

    Permissive licensing such as LGPL or BSD or such.



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

    supporting a good language such as Python or C++



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

    having a set of abstractions for the most common backend functionality, such as sockets, file IO, and so on



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

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

    关于frameworks - 是否有任何 USB 内存棒可运行、免安装、跨平台软件框架(带有 GUI)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/874070/

    相关文章:

    c# - xml签名DS前缀?

    Java Web 安装程序 - 他们是如何做到的?

    node.js - 如何使用 NPM 降级 Node?

    visual-studio - "stdafx.h"在 Visual Studio 中有何用途?

    android - iccp :Not recognizing known sRGB profile that has been edited

    .NET Framework 4.0 客户端配置文件与 .NET Framework 4.0

    php - 使用 WordPress 开发 Web 应用程序

    css - 如何在xampp中安装下载的wordpress主题

    python - Python中可用和使用的系统内存?

    asp.net-mvc-3 - Apress Pro Asp.net MVC Framework 3 - SportsStore 编辑产品不起作用?