Я установил коллекцию программного обеспечения 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? Или это ошибка? Любое понимание очень ценится.
Как правило, когда есть несколько версий 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
так далее.).
Других решений пока нет …