2010-04-06 3 views
12

Я хочу, чтобы легко развертывать приложение Windows, и было интересно, какие системы программирования могут создавать полностью автономные файлы Windows .exe?Какие языки программирования, которые могут создавать автономные окна .exes?

В качестве плюса, если то же самое можно сделать с MacOSX и Linux из того же источника, это будет бонус. Я взглянул на Realbasic, но с тех пор они отказались от единственной концепции .exe.

обновление: я ищу что-то, что может работать от Windows XP до Windows 7, независимо от того, какая версия .NET установлена. Возможно ли это?

+0

Вы заботитесь о зависимостях, таких как библиотеки времени выполнения? – snicker

+0

Если я хочу запустить exe как веб-приложение, а также получить доступ к библиотеке/файловой системе базы данных, в которой мне нужны библиотеки времени выполнения? – Zubair

+0

Невозможно подключиться к OSX и Linux, если вы используете .NET; в то время как да, есть Mono, доступные библиотеки являются достаточно разными, и вы по-прежнему сталкиваетесь с большой задачей портирования. –

ответ

8

Delphi компилируется в один исполняемый файл и генерирует собственные исполняемые файлы Windows. Таким образом, никаких зависимостей от каких-либо структур. Если вы используете Free Pascal (fpc) и Lazarus IDE, вы можете даже разработать для Linux и Apple из того же источника.

Если вы используете внешнюю dll, это станет немного более сложным, но вы можете упаковать их в свой файл ресурсов и по-прежнему поддерживать одно свойство exe.

+0

Не удалось найти ссылку для скачивания delphi. Оно все еще доступно? – Zubair

+1

Да, Delphi все еще существует, Borland продал его Embarcadero http://www.embarcadero.com/products/delphi. –

+0

Да Delphi существует. В постыдных условиях, с довольно раздражающей IDE и сильно завышенной ценой, но да, вы можете разрабатывать отличные приложения в Delphi. Мне это нравилось. Теперь это не что иное, как борьба. Визуальный дизайнер замечателен, вы можете набросать видимые элементы в jiffy; то, удачи с объектами джунглей и разочаровывающей документацией. Я начал с Паскаля еще в девяностые годы, поэтому я не боюсь замарать руки; но вместо Delphi я использую ZZEE php-to-exe всякий раз, когда могу. Рассказывает много. – dkellner

1

Вы можете сделать это для Windows, с помощью языков .NET ILMerge

ILMerge утилита для объединения нескольких сборок .NET в единую сборку .NET. Он работает как с исполняемыми файлами, так и с DLL и имеет несколько опций для управления обработкой и форматированием вывода. Подробнее см. Сопроводительную документацию.

Однако:

В настоящее время ILMerge работает только на платформах Windows, основанных. Он еще не поддерживает Rotor или Mono.

+0

Может ли ILMerge даже включать основные сборки из фреймворка, отрицая необходимость даже устанавливать .NET Framerwork? – snicker

+0

@snicker - Не знаю. Помощь не говорит, что вы не можете. – ChrisF

+1

@snicker: @ChrisF: вам все еще нужна CLR для запуска любой сборки IL, даже если вы можете связать ее в mscorlib.dll. –

2

Я бы порекомендовал взглянуть на AutoIt. Это простой в использовании язык сценариев, который будет компилироваться в exe, поэтому нет необходимости в использовании. Это будет только для окон.

http://www.autoitscript.com/autoit3/index.shtml

С сайта:

AutoIt v3 является бесплатным BASIC-подобный язык сценариев, разработанный для автоматизации GUI для Windows и общего сценариев. ... AutoIt также очень мал, автономный и будет работать на всех версиях Windows из-под без каких-либо досадных «времени выполнения»!

+0

Errr .. no, AutoIt не компилируется в C++. –

+0

Спасибо за исправление. Я отредактировал свой ответ. – BigJoe714

+0

OK :) Снятый снимок. –

6

Вы можете сделать это с помощью C/C++. Технически необходимы библиотеки времени исполнения, но они уже должны быть установлены в любых системах Windows, Mac или Linux.

С .NET вы можете скомпилировать EXE, но, конечно, требуется .NET framework. Для более новых версий окон он должен быть установлен по умолчанию, но в старых версиях (XP или старше?) Он может быть или не быть. И, конечно, вы не могли ожидать, что моно будет там по умолчанию на linux или mac.

+5

Вы можете установить компилятор для связывания времени выполнения в статическом режиме. –

+0

@ Билли - да, это хороший момент. –

+0

Я удалил это как принятый ответ, так как первый раз увидел проблемы .Net-программ, которые работают на .Net до 4.0, но не после – Zubair

3

Вы можете использовать Tcl/tk. Технология, которую вы должны исследовать, - это «звездный пакет», который объединяет исполняемый файл runtime (starkit) с платформенной средой выполнения («tclkit») для создания однофайлового исполняемого файла. Замечательно то, что это не просто скомпилированный код, а целая автономная виртуальная файловая система, которая может включать в себя изображения, звук, данные и т. Д.

Эта же технология работает для многих платформ с той же кодовой базы. Единственное, что отличается, - это время исполнения платформы. Вы даже можете «перекрестно скомпилировать», чтобы скопировать среду выполнения для нескольких платформ в свой блок разработчика, а затем строить стартовые пакеты для каждой платформы, не имея на самом деле быть на каждой платформе.

3

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

0

QBasic может :-)

Я написал несколько инструментов командной строки, используя его!

+0

QBasic не может. QuickBASIC может. –

+0

Я стою исправленный, я думал, что они были такими же. – NibblyPig

+1

QuckBASIC создает файлы DOS .exe. Современные Windows запускают их через * NTVDM * witch недоступен в 64-битных версиях. В Linux и OS X вам также понадобится какой-то эмулятор или уровень виртуализации для запуска DOS-программ. –

4

Для Windows следующие языки являются жизнеспособными:

  • C (MS, GCC)
  • C++ (MS, г ++, Digital Mars)
  • D (Digital Mars)
  • Delphi (Embarcadero как вы это написали?)
  • Fortran (Intel, Программное обеспечение Salford)
  • Visual Basic 6 (MS)
  • Lua (вы будете нуждаться в special tool, чтобы сделать это, но это выполнимо)
  • C#, VB.Net, F #, J #, и т.д. (при условии, что вы не возражаете против использования технологии .Net)
+0

N.B. Вы можете использовать C#, VB и т. Д. Без установки .net; Вы просто не можете использовать библиотеку .net, что означает, что вам нужно будет написать все самостоятельно или использовать другую библиотеку, например. Моно: http://www.mono-project.com/Main_Page –

3

JavaFX 2.2 поддерживает это. Это позволяет создавать автономные приложения, предназначенные для Windows, Mac OS и Linux.

Пожалуйста, перейдите по этой ссылке для получения дополнительной информации: http://docs.oracle.com/javafx/2/deployment/self-contained-packaging.htm.

2

C/C++ PureBasic Дельфи vb6

я надеюсь, что это поможет :)

2

Вот хороший источник для ряда основных подобных языков программирования, которые строят небольшие автономные EXEs. Некоторые из них являются кросс-платформенный для Windows, и Linux:

www.basic.mindteq.com

2

Вы можете использовать Liberty Basic, который легко и дешево, вы можете легко сделать самостоятельные программы для окон, но не представляется возможным передать в MacOS или Linux.