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

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

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

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

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

Некоторые пояснения;

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

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

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

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

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

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

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

Ответ 1

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

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

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

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

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

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

Хорошая поддержка графического интерфейса.

Check.

Допустимое лицензирование, такое как LGPL или BSD или таковое.

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

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

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

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

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

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

Ответ 2

Java.

  • У этого есть поддержка графического интерфейса.

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

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

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

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

Ответ 3

Что-то еще, что нужно учитывать, это HTML + Javascript.: D

Ответ 4

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

Ответ 5

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

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

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

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

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

Ответ 6

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

Ответ 7

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

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

Ответ 8

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

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