次の特性を持つ優れたソフトウェア開発フレームワークなどを知っている人はいますか?
- クロスプラットフォーム:XP、Vista、OSX、およびLinuxの一般的なバージョン(UbuntuやKubuntuなど)で実行可能である必要があります。
- インストールなし:ホストマシンに何もコピーせずに、USBスティックからソフトウェアを実行できます。
- 優れたGUIサポートを持っている(これが、私が知る限り、この質問が適切な答えを与えない理由です)。
- LGPLやBSDなどのパーミッシブライセンス。
よりソフトな要件の中には、ソケットやファイルIOなどの最も一般的なバックエンド機能の一連の抽象化があり(通常、プラットフォーム固有の適応が必要です)、PythonやC++などの優れた言語をサポートします。通常、新しいものを学ぶのは楽しいです(つまり、perlではありません)。
考えられる候補はQt4.5以上(ただし、IFAIK QtソフトウェアはインストールなしではVistaで実行されません(?))、いくつかのwxWidgets、またはおそらくgtkmmのwxPythonソリューションです。私が見つけた例は、いずれかの要件で失敗しました。これは、そのような例が存在しないことを意味するのではなく、私が何も見つけていないことを意味します。だから私はそこに誰かがこれに対する既存の解決策を知っているかどうか疑問に思っていましたか?
いくつかの説明;
- 「フレームワーク」とは、ウィジェットパッケージを備えたQt、gtkmm、pythonなどを意味します。
- これは、インストールせずにスティックから複数のプラットフォームで完成品を実行できることであり、ポータブルな開発環境を持つことではありません。
- ブートスティックではありません。
- 必要に応じて、さまざまなターゲット専用のソフトウェアをビルドする必要があります。
私が見ているユースケースは、信頼できるソフトウェア(プロジェクト計画、情報の管理、分析ツールなど)があり、次のようなものです。
- インターネット接続が利用可能であることに依存していません。
- 何もインストールしても問題がない別のホストマシンで実行されます。
- ユーザーが物理メディア(USBスティックなど)を介して移動します。
- Windows、Vista、Ubuntu、OSXなどのさまざまなオペレーティングシステムで実行されます。
- これらの異なるホスト上の同じデータで機能します(データはホストまたはスティックに保存できます)。
- バンドルされたフレームワークの大きさは実際には制限されていません(数ギガバイトでない限り、これは実際には現実的ではありません)。
ソフトウェアが同じように動作し、異なるターゲットで実行されたときに同じデータで動作できる限り、スティックに並列インストールすることもできます。
ユースケースの別の見方は、Vista、XP、OSX、Ubuntu、Kubuntuがそれぞれ目の前にある5台の新しくインストールされたマシンがあるということです。マシンに新しいものをインストールすることなく、これら5台のマシンのそれぞれで1つのUSBスティック(上記のGUI要件などを満たす)から同じソフトウェアを実行できるようにしたいと思います(ただし、必要に応じて異なるマシンから)スティック上のバンドル)。
これは可能ですか?
編集:いくつかのウィジェットとsqliteデータベースを使用するQtアプリで少し実験しました。ubuntudistとosxで動作させるのは簡単でした。Windows XPおよびVistaの場合、QtCored4.dll、QtGuid4.dll、QtSqld4.dll、およびmingwm10.dllを配布ディレクトリ(これはデバッグコード)にコピーする必要があり、qsqlited4.dllを配布内の「sqldrivers」という名前のフォルダーにコピーしました。ディレクトリ。