3

我最近开始从事一个要求我的编译器高于 GNAT 4.8.5 的项目 - 当我转到:帮助 > 关于

在此处输入图像描述

可以看到我使用的版本是4.8.5

在此处输入图像描述

另外,当我运行 gnatls -v 命令时,我可以看到这个......

[parallels@localhost ~]$ gnatls -v

GNATLS 4.8.5 20150623 (Red Hat 4.8.5-39)
Copyright (C) 1997-2013, Free Software Foundation, Inc.

Source Search Path:
   <Current_Directory>
   /usr/lib/gcc/x86_64-redhat-linux/4.8.5/adainclude/


Object Search Path:
   <Current_Directory>
   /usr/lib/gcc/x86_64-redhat-linux/4.8.5/adalib/


Project Search Path:
   <Current_Directory>
   /usr/x86_64-redhat-linux/lib/gnat
   /usr/share/gpr
   /usr/lib/gnat

[parallels@localhost ~]$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.3.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ./configure --disable-multilib --enable-languages=c,c++,ada
Thread model: posix
gcc version 7.3.0 (GCC) 
[parallels@localhost ~]$ 

请问有人能告诉我如何更新我的 GNAT 编译器吗?另外,我使用的是 Centos 7 操作系统。

谢谢,

劳埃德

4

2 回答 2

6

您不需要安装编译器,您已经拥有 3 个(至少):

  • gcc 4.8.5(系统编译器)在/usr/bin
  • gcc 7.3.0(您刚刚构建的)/usr/local/bin
  • gcc 8.3.1(来自 GNAT CE 2019)/home/parallels/opt/GNAT/2019/bin

PATH决定当你说 just 时你选择哪个 GCC,当你说 just 时gcc你选择哪个 GNATLSgnatls等等。

根据之前的帖子,您PATH是:

$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/var/lib/snapd/snap/bin:/home/parallels/.local/bin:/home/parallels/bin/home/parallels/opt/GNAT/2019/bin/home/parallels/opt/GNAT/2019/bin

因此,当您说gcc系统只查看PATH(以冒号分隔的)和 .. 中的第一个条目时,它就在那里!所以它执行。

如果您在 Ada 支持下构建了 7.3.0 GCC,它会在同一个地方找到 gnatls。我非常怀疑你没有,所以当你说只是gnatls系统看起来/usr/local/bin- 没有运气 - 然后在/usr/local/sbin- 没有运气 - 然后在/usr/bin- 哇!但那是您不想要的 4.8.5 GCC。

再次查看您的PATH,最后一部分被破坏了-您添加了/home/parallels/binand /home/parallels/opt/GNAT/2019/bin(两次)而不包括冒号分隔符,导致路径不存在。(/home/parallels/bin很可能已被系统添加 - 我假设这/home/parallels是您的主目录)。

您需要做的是确保选择 GNAT CE 2019 附带的编译器,方法是将其位置放在您PATH. 一种方法是编辑您的 shell 启动文件。

不知道CENTOS是怎么设置账号的,也不知道你的shell是什么。假设它是bash(类型ps -p $$,应该返回bash或者可能-bash;其他任何东西,我无能为力),您需要编辑其中一个 shell 启动文件 - 我对此有点不清楚,但我认为它会是~/.bashrc~是您的主目录的简写);有关血腥细节,请参见此处。查找该行插入的最后提及PATH和紧随其后

export PATH=/home/parallels/opt/GNAT/2019/bin:$PATH

打开一个新的终端窗口并说例如gnatls -v- 你应该拿起 GNAT CE 2019 一个。

于 2020-05-06T17:02:24.650 回答
0

我知道从 AdaCore 更新 GNAT GPS CE 的唯一方法是下载新的,安装它,然后删除旧的。

另一件事是升级某些系统在存储库中的 gnat-gps

于 2021-01-22T03:25:48.540 回答