使用Windows编译Linux的Ada程序

时间:2012-03-10 18:33:28

标签: windows linux ada

如果我想编译一个用Ada编写的程序,我当然必须使用GNAT。

由于我的计算机将Windows作为其唯一的操作系统,我通常无法使用GNAT。对?因此我得到了Cygwin,这使我能够在Windows上使用GNAT。

但结果是在Windows下运行的可执行文件 - 而不是Linux。那么我怎么能编译Linux的Ada代码,虽然我只有Windows? (请不要考虑原因......)

Cygwin有可能吗?我是否必须使用Linux安装虚拟机?或者是否有另一个(更简单的)解决此问题的方法?

5 个答案:

答案 0 :(得分:5)

  

当然,我必须使用GNAT。

不正确;还有其他Ada编译器。 (GNAT是我所知道的唯一免费的。)

在Cygwin下运行GNAT会为您提供Cygwin可执行文件,这些可执行文件是依赖于cygwin1.dll的Windows可执行文件。他们在Linux上工作。请参阅“什么......不是吗?” Cygwin home page上的部分。

有一个GNAT for Windows。 GNAT Pro版本有一个支持的平台列表here;它包括Linux和Windows,但它没有显示Windows到Linux的交叉编译器。

由于GNAT是免费软件(GNAT Pro 不是有点复杂;我不会进入那个),很可能是Windows到Linux的GNAT交叉编译器 - - 或者,如果你真的野心勃勃,你可以自己建立一个(或雇用某人为你做)。

但是在Linux系统上安装GNAT是最简单的方法。它 不是虚拟机。如果您有硬件,可以自行安装某些Linux系统,也可以在Windows机器上设置双启动系统。 Ubuntu有一个Windows安装程序Wubi,它将Ubuntu映像安装为Windows文件;它不允许你同时运行Windows和Ubuntu,但它允许你双启动而不必重新分区。

还有其他选择;这些只是我熟悉的。

答案 1 :(得分:3)

  

Cygwin有可能吗?

可能可能

  

我是否必须使用Linux安装虚拟机?或者是否有另一个(更简单的)解决此问题的方法?

在虚拟机上安装Linux可能是解决问题的最简单方法。

答案 2 :(得分:2)

  

由于GNAT是免费软件(GNAT Pro不是;我不会参与其中),很可能是Windows到Linux GNAT交叉编译器 - 或者,如果你真的雄心勃勃,你可以自己建立一个(或雇用某人为你做)。

实际上GNAT Pro是免费软件,在自由中是免费的,而不是在啤酒中。

我认为在虚拟机中安装Linux并使用它进行编译是最简单的。

答案 3 :(得分:1)

AdaCore有一个用于Windows操作系统的gnat编译器,可以在http://libre.adacore.com/libre/download/免费获得,然后选择“Free Software ...”并点击“Build Your Download Package”并从那里开始。正如Keith Thompson建议的那样,如果您确实需要Linux兼容的可执行文件,则可以设置双启动解决方案。请记住,在Windows上编译的任何程序都会产生仅限Windows的可执行文件,除非您有一个允许交叉编译的编译器。

答案 4 :(得分:0)

使用Windows 10 64 bit的用户可能会使用新的" Linux Subsystem"特征。您可以在其上安装gnat并使用它来编译ELF二进制文件以及Windows二进制文件。