Llo*_*mas 3 linux ada gnat gnat-gps
我最近开始从事一个项目,该项目要求我的编译器高于 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 ~]$
Run Code Online (Sandbox Code Playgroud)
请问有人能告诉我如何更新我的 GNAT 编译器吗?另外,我使用的是 Centos 7 操作系统。
谢谢,
劳埃德
你不需要安装编译器,你已经有 3 个(至少):
/usr/bin/usr/local/bin/home/parallels/opt/GNAT/2019/bin你 PATH决定了当你说 just 时你选择哪个 GCC,当你说 justgcc时你选择哪个 GNATLS gnatls,等等。
根据之前的帖子,您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
Run Code Online (Sandbox Code Playgroud)
因此,当您说仅gcc系统会查看PATH( 以冒号分隔的)中的第一个条目时, .. 就在那里!所以它执行那个。
如果您使用 Ada 支持构建了 7.3.0 GCC,它会在同一个地方找到 gnatls。我非常怀疑你没有,所以当你说只是gnatls系统查看/usr/local/bin- 没有运气 - 然后/usr/local/sbin- 没有运气 - 然后/usr/bin- 哇!但那是您不想要的 4.8.5 GCC。
再看看你的PATH,最后一部分被破坏了 - 你已经添加了/home/parallels/bin和/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
Run Code Online (Sandbox Code Playgroud)
打开一个新的终端窗口并说例如gnatls -v- 你应该选择 GNAT CE 2019 一个。