10

我正在我的编程课上学习Ada 95,我想在我的 MacBook 上安装gnat编译器。我不知道在哪里可以得到一个好的gnat来编译我的代码,以及如何安装它。

我目前将gedit作为我的文本编辑器,因为这是我们在实验室环境中使用的。我是 Mac 世界的新手,所以任何帮助将不胜感激。

4

3 回答 3

10

AdaCore为 Mac OS X提供了一个出色的免费 Ada 编译器。

您应该可以使用 GNAT GPL 版本。按照下载链接 - 选择学术发展的免费软件- 在页面底部,按照构建您的下载包

选择您的平台x86_64-darwin, 2012。单击GNAT 2012,然后单击gnat-gpl-2012-x86_64-apple-darwin10.8.0-bin.tar.gz(这包含您目前需要的所有内容)。

您还需要 Xcode(Mac OS X 免费)。Pre-Lion,这是(我认为)安装 DVD 上的可选安装。在 Lion 或 ML 中,您需要从 App Store 获取它(在 ML 中,它位于Categories > Developer Tools > Xcode中)。在 ML 中,您还需要安装命令行工具:打开 Xcode,然后Xcode > Preferences > Downloads > Components,在命令行工具中选择安装

我说先安装 Xcode,因为 GNAT 安装需要它(您可以通过以下方式判断是否安装了命令行工具which make:如果答案返回空白,则未安装)。无论如何,对于 GNAT 安装,

$ cd
$ tar zxvf ~/Downloads/gnat-gpl-2012-x86_64-apple-darwin10.8.0-bin.tar.gz
$ cd gnat-gpl-2012-x86_64-apple-darwin10.8.0-bin
$ sudo ./doinstall

安装完成后就不需要安装程序了,可以删除。

默认情况下将 GNAT 安装在 下/usr/local/gnat,您需要确保它/usr/local/gnat/bin在您的路径上(无论如何,在 之前/usr/bin)。我会编辑~/.bash_profile_common添加

PATH=/usr/local/gnat/bin:$PATH

但我仍然无法知道哪些~/.bash*文件做了什么!

于 2013-01-28T18:14:03.940 回答
5

我有 OS X Yosemite 10.10.3,我按照以下步骤操作。

  1. 从这个地方下载 GNAT http://libre.adacore.com/download/configurations。选择 Mac OS X 作为平台。

  2. 在终端上执行以下命令:

    1. 将上一步下载的文件解压或(tar例如,如下:

      tar zxvf gnat-gpl-2012-x86_64-apple-darwin10.8.0-bin.tar.gz   
      

      注意:这假设您与在步骤 1 中下载的文件位于同一文件夹中。

    2. cd gnat-gpl-2012-x86_64-apple-darwin10.8.0-bin

    3. sudo ./doinstall

  3. 编辑您的.bash_profile文件,/Users/{YOUR_USER_NAME}/.bash_profile使其也具有以下行

    export PATH=$PATH:/opt/local/bin:/usr/local/gnat/bin
    
  4. 保存.bash_profile文件。

  5. 打开一个新的终端。您现在应该可以执行gnatmake.

于 2015-04-18T21:17:58.000 回答
1

这里的答案已经很老了,不再是最好的选择。仅命令行开发非常痛苦,尤其是如果您刚刚开始使用该语言。替代方案 GNAT Studio IDE 在 MacOS X 上不再受支持,但在 Linux 和 Windows 上仍受支持。不过没有什么大的损失,因为它有点笨重、速度慢并且与 MacOS 的集成很差。

幸运的是,现在有一个 VSCode 插件支持 GNAT Studio 中可用的所有主要功能,例如语法着色、调试和 IntelliSense,以及更好的整体用户界面:

https://marketplace.visualstudio.com/items?itemName=AdaCore.ada

奇怪的是,它的推广不如 GNAT Studio 好。事实上,我在设置开发环境遇到困难后,一时兴起发现了这个 VSCode 插件。设置插件的说明很简单。它还拥有最简洁、最全面的工具链安装说明。

于 2022-01-14T21:25:11.023 回答