Eclipse CDT, установленный через devtoolset-4 в CentOS 7, использует неверную версию gcc / g ++

Я установил коллекцию программного обеспечения devtoolset-4 на машину CentOS 7, которую я использую для разработки. Эта коллекция программного обеспечения включает компилятор, который я хочу использовать, g ++ 5.2.1, а также Eclipse CDT 4.5 (Mars). Когда я создаю новый проект C ++ в Eclipse и перехожу к свойствам проекта (щелкните правой кнопкой мыши по проекту, затем Properties -> C / C ++ Build -> Environment), я вижу, что Eclipse создал переменную среды PATH, которая добавляется к текущему PATH при создании моего проекта. Значение определяемой Eclipse переменной PATH:

/bin:/opt/rh/devtoolset-4/root/usr/bin:/opt/rh/rh-java-common/root/usr/bin:/usr/lib64/qt-3.3/bin:/home/kts /perl5/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/sbin:/home/kts/.local/bin:/home/kts/bin

Первая запись в PATH — это / bin, которая в CentOS 7 является символической ссылкой на / usr / bin. В / usr / bin находится бинарный файл g ++ 4.8.5, который устанавливается из официальных репозиториев CentOS. Это приводит к тому, что Eclipse строит мой проект с g ++ 4.8.5 вместо версии, которую я на самом деле хочу использовать, — это двоичный файл g ++ 5.2.1, расположенный в каталоге / opt / rh / devtoolset-4 / root / usr / bin ( вторая запись в PATH). Если я удаляю запись / bin из переменной Eclipse PATH, мой проект собирается с нужным g ++ 5.2.1.

Хотя я немного сомневаюсь, что это исправление будет продвигаться вперед, поскольку я ожидал, что проекты, созданные в версии Eclipse, включенной в devtoolset-4, будут работать «из коробки» с версией g ++, включенной в devtoolset-4. Кто-нибудь еще сталкивался с этой проблемой? Есть ли что-то, что я не правильно делаю при использовании коллекции программ devtoolset-4? Или это ошибка? Любое понимание очень ценится.

1

Решение

Как правило, когда есть несколько версий g++ установлены суффиксные версии g++ исполняемый файл — например, g++-4.8, g++-5 — доступно, так что вы можете выбрать нужную версию, используя соответствующий суффикс. Вы можете убедиться, что это так, запустив g++-5 в оболочке (с соответствующей настройкой PATH) и проверкой ее разрешения.

Предполагая, что это так, вам просто нужно настроить Eclipse для использования g++-5 вместо простого g++, Вы можете сделать это в Свойствах проекта -> Сборка C / C ++ -> Настройки -> Настройки инструмента. Под каждым из «GCC C ++ Compiler», «GCC C Compiler» и «GCC C ++ Linker» измените «Команду» с g++ или же gcc в g++-5 или же gcc-5,

Обратите внимание, что GCC недавно изменила свою нумерацию версий. Если раньше ежегодные выпуски увеличивали только номер второй версии (4.7, 4.8, 4.9), то начиная с версии 5 и далее каждый годовой выпуск увеличивает номер первой версии. Соответственно, суффикс для версий 5 и более поздних — это просто одно число, например g++-5не g++-5.2 (тогда как раньше это было бы g++-4.8, g++-4.9 так далее.).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]