【问题标题】:How do you install GNAT (GNU Ada) on a Windows computer?如何在 Windows 计算机上安装 GNAT (GNU Ada)?
【发布时间】:2011-11-28 17:44:09
【问题描述】:

好的,我正在考虑做一个多语言项目。我正在研究 Ada 中的一部分。我已经知道 AdaCore 包,但我需要分别链接每个文件,这意味着直接通过 GCC 可能最容易。

唯一的问题是 GNAT 显然主要是在 Ada 中编写的,我似乎无法找到如何在任何地方安装它的指南。

MinGW 为我处理了一些其他语言,但显然 GNAT 不包括在内。

提前致谢!

【问题讨论】:

    标签: windows gcc installation ada


    【解决方案1】:

    如果您稍后决定安装MinGWAda,您可以使用mingw-get 命令更新您现有的安装,如下所示,例如mingw-get install ada。更多详情请见here

    正如相关的answer 中所建议的,另一种编译器有其用途。

    $ mingw-get --help 管理 MinGW 和 MSYS 安装(命令行用户界面)。 用法: mingw-get [OPTIONS] 动作 [package-spec ...] mingw-获取更新 mingw-get [选项] {安装 |升级 |删除}包规格... mingw-get [选项] {显示 |列表} [包规格...] 选项: --help, -h 显示此帮助文本 --version, -V 显示版本和许可信息 行动: update 更新存储库目录的本地副本 list, show 列出并显示可用包的详细信息 install 安装新包 upgrade 升级以前安装的包 remove 删除以前安装的包 包装规格: [子系统-]名称[-组件]: msys-bash-doc 用于 MSYS 的 bash 包的“doc”组件 mingw32-gdb 用于 MinGW 的 gdb 包的所有组件 使用“mingw-get list”来识别可能的包名 以及与每个相关的组件。

    附录:在 Windows XP 上,我通过管道将 mingw-get list 传递到 grep 以削减 list

    $ mingw-获取列表 | grep -i ada ... 包:mingw32-gcc-v3-ada 子系统:mingw32 GNU Ada 编译器 这个包提供了 GNU Ada 语言的 MinGW 实现 用 Ada 语言写成。 ... $ gnatmake --version GNATMAKE 4.5.2 版权所有 (C) 1995-2010,Free Software Foundation, Inc. ...

    【讨论】:

    • 啊,这就是你获得 MinGW Ada 编译器的方式。我在安装 mingw-get-inst 安装程序时使用了它,但它似乎将它与 Java 编译器一起遗漏了。
    • IIRC,GUI 安装程序将其作为选项提供。
    • 我没有选择它。我只有 C、C++、Obj-C、Fortran、MSYS 和开发工具包,运行 mingw-get-inst-20111118。此外,从命令行尝试它时,ada 以未知包的形式出现,而且列表非常庞大,我需要查看的部分在我阅读之前被切断了。
    • 我最终做的是下载旧版本的 GUI 安装程序,它允许我下载 Ada 编译器。但是,我可能不得不重新安装新的东西,因为它似乎已经覆盖了其他重要东西的新版本(安装任何东西、重新安装库等都需要 GCC)。编辑:我重新使用了较新的 get-inst 安装程序,它似乎重新升级了一切都很好。 :)
    • 我不知所措;以上。编辑:我用过mingw-get-inst-20110316
    【解决方案2】:

    我在 Mingw-w64 项目中的 SF.NET 上上传了 64bit GNU ada

    【讨论】:

      【解决方案3】:

      转到AdaCore’s Libre site,下载安装程序并运行它!

      也就是说,我认为您的单独编译源文件的方案会有问题; Ada 代码必须支持精细化,这不是您想要手动管理的东西。我自己没有检查过(如果可以的话,我不会在 Windows 上编程),但是here is some information on using GNAT with Windows;值得一看。

      【讨论】:

      • 我想我可能措辞不佳。根据我的阅读,在大多数情况下,组合语言的唯一方法是(a)找到支持混合语言的编译器(如 Visual Studio/.NET),或者单独编译并链接目标文件。考虑到这些知识,我得出的结论是,学习在命令行之外使用 GCC 可能会少一些头痛。
      • 我已经习惯了gnatmake,但我记得分别使用gcc -cgnatbindgnatlink
      • 我记得,gnatbind 创建了包含一个作为注释嵌入的链接所需的所有目标代码模块的列表; gnatlink 处理这个并运行实际的链接,我们必须为这部分滚动我们自己的。
      • 啊,tempus fugit! @johnki:对于gnatbind-g 选项保留导出adainitadafinalb~ 文件; -n 指定了一个外部主例程,其中应调用adainitadafinal
      • @trashgod:这是一个gnatlink 选项; gnatlink --help 实际上并没有提到 -g 保留这些文件以及使用调试编译它们。
      【解决方案4】:

      像 Ada Web Server 这样的东西要求 Ada 开发人员即使在 Windows 上也有类似 unix 的环境,所以我总是将 MSYS 和 GNAT GPL 一起安装。有几个关于如何将 MSYS 与 MinGW 一起使用的指南。唯一的问题是最近的 MSYS 自动安装程序默认配置为使用非 AdaCore MinGW,这不是我们想要的。

      MSYS 的最新正常(非自动)安装程序在这里:

      http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.11/MSYS-1.0.11.exe/download

      安装后,您将被要求提供 MinGW 位置。写 c:/GNAT/2012 或任何你用于 GNAT 的东西(不带 bin)。

      在 Windows 7 上,此脚本因未知原因失败,但连接 MSYS 和 MinGW 就像编写一样简单

      c:/GNAT/2012 /mingw
      

      进入 C:\msys\1.0\etc\fstab

      【讨论】:

        猜你喜欢
        • 2016-07-13
        • 1970-01-01
        • 1970-01-01
        • 2015-08-26
        • 2011-03-10
        • 2016-02-20
        • 1970-01-01
        • 2019-05-27
        • 1970-01-01
        相关资源
        最近更新 更多