【发布时间】:2011-11-28 17:44:09
【问题描述】:
好的,我正在考虑做一个多语言项目。我正在研究 Ada 中的一部分。我已经知道 AdaCore 包,但我需要分别链接每个文件,这意味着直接通过 GCC 可能最容易。
唯一的问题是 GNAT 显然主要是在 Ada 中编写的,我似乎无法找到如何在任何地方安装它的指南。
MinGW 为我处理了一些其他语言,但显然 GNAT 不包括在内。
提前致谢!
【问题讨论】:
标签: windows gcc installation ada
好的,我正在考虑做一个多语言项目。我正在研究 Ada 中的一部分。我已经知道 AdaCore 包,但我需要分别链接每个文件,这意味着直接通过 GCC 可能最容易。
唯一的问题是 GNAT 显然主要是在 Ada 中编写的,我似乎无法找到如何在任何地方安装它的指南。
MinGW 为我处理了一些其他语言,但显然 GNAT 不包括在内。
提前致谢!
【问题讨论】:
标签: windows gcc installation ada
如果您稍后决定安装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-get-inst-20110316。
我在 Mingw-w64 项目中的 SF.NET 上上传了 64bit GNU ada。
【讨论】:
转到AdaCore’s Libre site,下载安装程序并运行它!
也就是说,我认为您的单独编译源文件的方案会有问题; Ada 代码必须支持精细化,这不是您想要手动管理的东西。我自己没有检查过(如果可以的话,我不会在 Windows 上编程),但是here is some information on using GNAT with Windows;值得一看。
【讨论】:
gnatmake,但我记得分别使用gcc -c、gnatbind和gnatlink。
gnatbind 创建了包含一个作为注释嵌入的链接所需的所有目标代码模块的列表; gnatlink 处理这个并运行实际的链接,我们必须为这部分滚动我们自己的。
gnatbind,-g 选项保留导出adainit 和adafinal 的b~ 文件; -n 指定了一个外部主例程,其中应调用adainit 和adafinal。
gnatlink 选项; gnatlink --help 实际上并没有提到 -g 保留这些文件以及使用调试编译它们。
像 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
【讨论】: