如果我想编译一个用Ada编写的程序,我当然必须使用GNAT。
由于我的计算机将Windows作为其唯一的操作系统,我通常无法使用GNAT。对?因此我得到了Cygwin,这使我能够在Windows上使用GNAT。
但结果是在Windows下运行的可执行文件 - 而不是Linux。那么我怎么能编译Linux的Ada代码,虽然我只有Windows? (请不要考虑原因......)
Cygwin有可能吗?我是否必须使用Linux安装虚拟机?或者是否有另一个(更简单的)解决此问题的方法?
答案 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二进制文件。