Обновление компилятора для IDE GPS Community Edition 2019 - PullRequest
3 голосов
/ 06 мая 2020

Я недавно начал работать над проектом, который требует, чтобы мой компилятор был выше GNAT 4.8.5 - Когда я go в: Справка> О

enter image description here

Вы можете видеть, что я использую версию 4.8.5

enter image description here

Кроме того, когда я запускаю команду 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.

Спасибо,

Lloyd

1 Ответ

5 голосов
/ 06 мая 2020

Не нужно устанавливать компилятор, у вас уже есть 3 (как минимум):

  • g cc 4.8.5 (системный компилятор) в /usr/bin
  • g cc 7.3.0 (который вы только что построили) в /usr/local/bin
  • g cc 8.3.1 (из GNAT CE 2019) в /home/parallels/opt/GNAT/2019/bin

Ваш PATH определяет, какой G CC вы берете, когда говорите просто gcc, и какие GNATLS вы выбираете, когда вы говорите просто gnatls, .. et c.

Согласно предыдущему сообщению, ваш 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 (т.е. через двоеточие) и .. вот оно! поэтому он выполняет это.

Если бы вы построили свой 7.3.0 G CC с поддержкой Ada, он нашел бы gnatls в том же месте. У меня очень сильное подозрение, что вы этого не сделали, поэтому, когда вы говорите просто gnatls, система просматривает /usr/local/bin - не повезло - затем /usr/local/sbin - не повезло - затем /usr/bin - блин! но это 4.8.5 G CC, который вам не нужен.

Посмотрев снова на ваш PATH, последняя часть искажена - вы добавили /home/parallels/bin и /home/parallels/opt/GNAT/2019/bin (дважды ) без использования разделителей двоеточия, что приведет к несуществующему пути. (/home/parallels/bin вполне мог быть добавлен системой - я предполагаю, что /home/parallels - ваш домашний каталог).

Что вам нужно сделать, так это убедиться, что вы выбрали компилятор, который идет с GNAT CE 2019, указав его местоположение первым в вашем PATH. Один из способов сделать это - отредактировать файлы запуска оболочки.

Я не знаю, как CENTOS настраивает учетные записи, и я не знаю, что это за оболочка. Предполагая, что это bash (введите ps -p $$, должен вернуться с bash или, возможно, -bash; что-то еще, я не могу помочь), вам нужно отредактировать один из файлов запуска оболочки - я немного неясно, но я думаю, это будет ~/.bashrc (~ - это сокращение для вашего домашнего каталога); см. здесь для получения подробной информации. Найдите последнее упоминание PATH и сразу после этой строки вставьте

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

Откройте новое окно терминала и скажите, например, gnatls -v - вы должны взять GNAT CE 2019.

...