【问题标题】:Updating the Compiler for the GPS Community Edition 2019 IDE更新 GPS Community Edition 2019 IDE 的编译器
【发布时间】:2020-05-06 09:56:34
【问题描述】:

我最近开始从事一个要求我的编译器高于 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 操作系统。

谢谢,

劳埃德

【问题讨论】:

标签: linux ada gnat gnat-gps


【解决方案1】:

你不需要安装编译器,你已经有 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 决定了当你说 gcc 时你会选择哪个 GCC,当你说 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

所以当您只说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 随附的编译器,方法是将其位置 first 放在您的 PATH 中。一种方法是编辑您的 shell 启动文件。

我不知道 CENTOS 是如何设置帐户的,也不知道你的 shell 是什么。假设它是bash(输入ps -p $$,应该返回bash 或者-bash;其他任何东西,我都帮不上忙),你需要编辑一个shell 启动文件——我有点对此不清楚,但我认为它会是~/.bashrc~ 是您的主目录的简写);有关血腥细节,请参阅here。找到最后提到的PATH 并在该行之后立即插入

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

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

【讨论】:

  • 只是想在这里评论一下,这并不总是适用于每个 linux 环境。我们有一个 redhat 环境,单独设置路径并不能完全起作用。此外,我们必须调整工具链设置(通常在构建菜单下)。该对话框有两个路径也可以修改编译器路径和工具路径,此外还有一个复选框以允许需要检查多个工具链来设置它们。我不知道为什么我们的环境需要这样做,但可能是你的后兜里的东西。
  • 干杯@Jere,感谢您的提醒。这是我会记住的。
  • 嗨@Simon Wright,非常感谢您提供详细的awser。这帮助我解决了问题,我更改了 PATH 并更新了编译器。当我转到:Help > About within CE 2019 我现在看到这个 GPS 19.1 (20190106) 托管在 x86_64-pc-linux-gnu GNAT Community 2019 (20190517-83) GNAT Programming Studio (c) 2001-2019 AdaCore 非常感谢
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多