Существуют ли какие-либо управляемые USB-флешки, не устанавливаемые, кросс-платформенные программные платформы (с графическим интерфейсом)?


Знает ли кто-нибудь о хорошей платформе разработки программного обеспечения или подобной ей, которая имеет следующие свойства?

    Кросс-платформенный: он должен быть доступен для запуска на XP, Vista, OSX и распространенных версиях Linux (таких как Ubuntu и Kubuntu).
  • нет установки: возможность запускать программное обеспечение с USB-накопителя без необходимости копировать что-либо на главную машину.
  • имеют хорошую поддержку GUI (вот почему этот вопрос не дает подходящего ответа, насколько я могу рассказывать).
  • разрешительное лицензирование, такое как LGPL или BSD или подобное.

Среди более мягких требований - наличие набора абстракций для наиболее распространенных функций бэкенда, таких как сокеты, файловый ввод-вывод и т. д. (Обычно требуется определенная адаптация платформы), а также поддержка хорошего языка, такого как Python или C++, хотя обычно интересно изучать новый (т. е. не perl).

Я думаю, что возможными кандидатами являются Qt 4.5 или выше (но IFAIK Qt software не будет запуск на Vista без какой-либо установки(?)), некоторые wxWidgets или, возможно, решение wxPython, возможно, gtkmm. Примеры, которые я нашел, не соответствовали ни одному из требований. Это не значит, что таких примеров не существует, это просто значит, что я их не нашел. Поэтому мне было интересно, знает ли кто - нибудь о существующих решениях для этого?

Некоторые уточнения;

  • под "фреймворком" я подразумеваю что-то вроде Qt, gtkmm или python с пакетом виджетов.
  • это о том, чтобы иметь возможность запускать готовый продукт на нескольких платформах, с флешки, без установки, речь не идет о наличии портативной среды разработки.
  • это не палка для ботинок.
  • это нормально, чтобы иметь, чтобы построить программное обеспечение специально для различных целей, если это необходимо.

Пример использования, который я вижу, заключается в том, что у вас есть некоторое программное обеспечение, на которое вы полагаетесь (например, планирование проекта, администрирование информации, инструменты анализа или аналогичные) это:

  • не зависит от наличия подключения к интернету.
  • выполняется на разных хост-машинах, где на самом деле ничего нельзя установить.
  • перемещается пользователем через физический носитель (например, USB-накопитель).
  • работает на различных операционных системах, таких как Windows, Vista, Ubuntu, OSX.
  • работает с одними и теми же данными на этих разных хостах (данные могут храниться на хосте или на флешке).
  • На самом деле не ограничен в том, насколько большой в комплекте идет фреймворк (если только это не несколько гигабайт, что на самом деле нереально).

Также нормально иметь параллельные установки на флешке, если программное обеспечение ведет себя одинаково и может работать с одними и теми же данными при запуске на разных целевых объектах.

Другой взгляд на случай использования будет состоять в том, что у меня есть пять недавно установленных машин с Vista, XP, OSX, Ubuntu и Kubuntu соответственно передо мной. Я хотел бы, не устанавливая ничего нового на машины, иметь возможность запускать одно и то же программное обеспечение с одной флешки (отвечающей вышеуказанным требованиям GUI и так далее) на каждой из этих пяти машин (хотя, при необходимости, из разных пакетов на флешке).

Возможно ли это?

Править: Я немного поэкспериментировал с приложением Qt, которое использует некоторые виджеты и базу данных sqlite. Было легко заставить его работать на ubuntu dist и на osx. Для windows xp и vista мне пришлось скопировать QtCored4.dll, QtGuid4.dll, QtSqld4.dll и mingwm10.DLL в каталог дистрибутива (это был отладочный код), и я скопировал qsqlited4.dll в папку с именем "sqldrivers"в каталоге дистрибутива.

8 10

8 ответов:

Вы упоминаете wxWidgets, но отклоняете его как невыполнение хотя бы одного из требований.

Я не знаю, каковы ваши требования и каким образом wxWidgets не будет работать для вас, но IMO он выполняет их:

Кросс-платформенный: он должен быть доступен для запуска на XP, Vista, OSX и распространенных версиях Linux.

Он действительно работает на этих платформах, но "общие версии Linux" недостаточно хороши, так как вы никогда не можете быть уверены, что необходимые библиотеки GUI для wxGTK (который не должен быть связан статически) будет установлен. Однако это проблема и для других решений, если только вы не планируете поместить все на палку.

Нет установки: возможность запускать программное обеспечение с USB-накопителя без необходимости копировать что-либо на главную машину.

См. предыдущий пункт, Вам нужно будет указать, какие библиотеки необходимы в Linux. Кроме того, вы можете указать во время сборки, чтобы не использовать некоторые из предоставленных системой библиотеки (например, для графики, сжатия, регулярных выражений), но вместо этого использовать wxWidgets-внутренние библиотеки.

Имеют хорошую поддержку GUI

Проверка.

Разрешительное лицензирование, такое как LGPL или BSD или подобное.

Проверка. Вы также можете статически связать wxWidgets с вашим приложением.

Поддержка хорошего языка, такого как Python или C++

Поддерживает оба, а также есть привязки к другим языкам.

Наличие набора абстракций для наиболее распространенных функций бэкенда, таких как сокеты, файловый ввод-вывод и т. д.

В нем есть некоторые абстракции, подобные этой, но вы также можете ссылаться на другие кроссплатформенные библиотеки.

Мы используем wxWidgets для FlameRobin, графической программы администрирования для SQL-сервера Firebird. Он имеет активные порты для Windows, Linux и Mac OS X, а также был скомпилирован по крайней мере для некоторых вариантов BSD и Solaris. Он определенно работает с палочки на Windows, я не пробовал с Linux или Mac OS X, но я не вижу, почему бы ему не быть там тоже.

Java.

  • Он имеет поддержку графического интерфейса.

  • Он обеспечивает ваш сеть/файле/etc. абстракции.

  • Он кросс-платформенный. Большинство платформ, которые вы можете себе представить, имеют JRE.

  • Нет необходимости устанавливать JRE. Большинство пользователей, вероятно, уже имеют его, и если нет, вы можете запустить соответствующий JRE прямо с флешки.

  • Вы можете предоставить несколько сценариев запуска для различных платформ, чтобы запустить приложение под соответствующим среда JRE.

Что-то еще нужно рассмотреть-это HTML+Javascript. :D

Вы можете посмотреть на Mono он кросс-платформенный, имеет GUI (GTK+, или Winforms 2.0), и я могу выполнять код без установки.

Это может быть не кроссплатформа, но, может быть, даже лучше, он даже не использует платформу: linux на палочке: -)

Подзаголовок

Возьмите ваши рабочие пространства Java, куда бы вы ни пошли на USB-ключ

Здесь с java и eclipse, но там вас, конечно, ничто не останавливает.

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

Ну, это зависит от того, что вы подразумеваете под "пакетом". Киликс был близок к тому, чтобы стать таким существом. Он был основан на QT, и это позволило вам написать один раз и скомпилировать для Windows + Linux. Однако это не было решением с открытым исходным кодом.

Я задал аналогичный вопрос в этой ссылке http://www.24hsoftware.com/DevelopersForum/CrossPlatform-C-Library.html и лучший аснсвер, кажется, QT.

Я начал использовать QT, но это не так просто, как я ожидал, в основном из-за проблем с развертыванием из-за DLL hell, Winsxs hell и manifest hell.

Tclkit -это однофайловая автономная система Tcl/Tk. Версия mac, которая у меня есть, составляет около 3,8 мегабайт. Вы можете получить версию практически для любой современной ОС. Я ношу с собой флешку с двоичными файлами mac, windows и linux, поэтому я могу запускать свои сценарии на любой платформе. Установка не требуется, просто скопируйте один файл, где вы хотите.

Самые последние версии tclit используют собственные тематические виджеты (хотя на *nix действительно нет ни одного "родного" набора виджетов...)