Скомпилировать программу Ada для Linux с использованием Windows - PullRequest
2 голосов
/ 10 марта 2012

Если я хочу скомпилировать программу, написанную на языке Ada, я, конечно, должен использовать GNAT.

Поскольку мой компьютер имеет Windows в качестве единственной операционной системы, я обычно не могу использовать GNAT.Правильно?Таким образом, я получил Cygwin, который позволяет мне использовать GNAT в Windows.

Но в результате получается исполняемый файл, который работает под Windows, а не под Linux.Итак, как я могу скомпилировать код Ada для Linux, хотя у меня только Windows?(Пожалуйста, не думайте о причинах ...)

Возможно ли это с Cygwin?Нужно ли устанавливать виртуальную машину с Linux?Или есть другое (более простое) решение этой проблемы?

Ответы [ 5 ]

5 голосов
/ 11 марта 2012

Я, конечно, должен использовать GNAT.

Не верно;Есть другие компиляторы Ada.(Единственный известный мне GNAT - бесплатный).

Запуск GNAT под Cygwin дает вам исполняемые файлы Cygwin, которые являются исполняемыми файлами Windows и зависят от cygwin1.dll.Они будут не работать в Linux.Смотрите "Что ... не так ли?"раздел Домашняя страница Cygwin .

Существует GNAT для Windows.Версия GNAT Pro имеет список поддерживаемых платформ здесь ;он включает в себя Linux и Windows, но не показывает кросс-компилятор Windows-Linux.

Поскольку GNAT является свободным программным обеспечением (GNAT Pro не немного сложнее;Я не буду вдаваться в подробности) вполне может быть кросс-компилятор Windows-to-Linux GNAT - или, если вы действительно амбициозны, вы можете создать его самостоятельно (или нанять кого-нибудь, чтобы сделатьэто для вас).

Но установка GNAT в системе Linux - самый простой подход.В не должно быть , чтобы быть виртуальной машиной.Если у вас есть оборудование, вы можете установить некоторую систему Linux самостоятельно или установить систему с двойной загрузкой на вашем компьютере с Windows.Ubuntu имеет установщик Windows Wubi , который устанавливает образ Ubuntu в виде файла Windows;он не позволяет вам одновременно запускать Windows и Ubuntu, но он позволяет вам выполнять двойную загрузку без перераспределения.

Существуют и другие варианты;это только те, с кем я знаком.

3 голосов
/ 11 марта 2012

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

Возможно возможно .

Нужно ли устанавливать виртуальную машину с Linux? Или есть другое (более простое) решение этой проблемы?

Установка Linux на виртуальной машине, вероятно, будет самым простым решением вашей проблемы.

2 голосов
/ 12 марта 2012

Поскольку GNAT является свободным программным обеспечением (GNAT Pro не является; я не буду вдаваться в это), вполне может быть кросс-компилятор Windows-to-Linux GNAT - или, если вы действительно амбициозны, вы можете построй сам (или найми кого-нибудь, кто сделает это за тебя).

На самом деле GNAT Pro является свободным программным обеспечением, бесплатным как в свободе, так и в пиве.

И я думаю, что было бы проще всего установить Linux на виртуальную машину и скомпилировать ее.

1 голос
/ 11 марта 2012

AdaCore имеет компилятор gnat для операционной системы Windows, который можно бесплатно получить по адресу: http://libre.adacore.com/libre/download/, выбрать «Свободное программное обеспечение ...», нажать «Создать пакет загрузки» и перейти оттуда.Как предполагает Кит Томпсон, вы можете настроить решение с двойной загрузкой, если вам действительно нужен совместимый с Linux исполняемый файл.Помните, что любая программа, скомпилированная в Windows, приводит к выполнению только для Windows, если у вас нет компилятора, который допускает кросс-компиляцию.

0 голосов
/ 06 ноября 2017

Это стало возможным для тех, кто использует Windows 10 64 бит с новой функцией " Linux Subsystem ". Вы можете установить на нем gnat и использовать его для компиляции двоичных файлов ELF, а также двоичных файлов Windows.

...