eclipse cdt — Как правильно работать с другим компилятором C ++ в проекте CDT?

Я использую Eclipse CDT Mars.2 (и Neon RC) в Linux. Компилятором C ++ по умолчанию для моего дистрибутива является GCC 5.3.1, но для некоторых моих работ я использую GCC 4.9.3. мне бы хотелось все Что касается моего проекта по использованию GCC 4.9.3: Обнаружение инструмента, стандартная библиотека C ++, пути включаемых файлов, индексатор, предварительная обработка — все это.

Какой правильный способ сделать это? Кажется, в Eclipse есть довольно византийские конфигурации «провайдеров» и «наборов инструментов», и я не хочу делать настройки, которые я не смогу отменить позже …

Замечания:
Я пытался заменить ${COMMAND} с /usr/bin/g++-4.9 в некоторых настройках поставщика препроцессора «Включает» и т. д., что привело к обнаружению связанных файлов 4.9.3, но моему индексатору это не понравилось, и все std :: stuff были выделены красным и не разрешены. Затем я попытался найти, где я установил версию компилятора, используемую для индексации, но я не смог ее найти.

4

Решение

Есть два возможных ответа, в зависимости от того, выполняете ли вы «Стандартное производство» или «Управляемое производство». Стандартный Make означает, что вы пишете свои собственные Makefiles и управляете всем этим самостоятельно. Управляемый Make означает, что вы позволяете CDT создавать Makefiles и управлять ими.

Стандартная марка

Для стандартного изготовления все контролируется тем, что обнаруживает сканер. Сканер обрабатывает поиск всех включенных в систему файлов, которые являются частью вашего проекта, и которые передаются в индексатор для разрешения символов, а также позволяют такие вещи, как навигация по заголовочным файлам.

Чтобы изменить используемый компилятор, вам нужно заменить ${COMMAND} с вашим выбранным компилятором. Вы (как пользователь) должны убедиться, что эта команда соответствует тому, что вы используете в вашем Makefile.

Чтобы изменить ${COMMAND}:

  1. открыто Свойства проекта (щелкнув правой кнопкой мыши по проекту)
  2. Выбрать C / C ++ Общий -> Препроцессор включает пути, макросы и т. Д. в дереве.
  3. Выбрать Провайдеры табуляция
  4. Выбрать Настройки встроенного компилятора CDT GCC из списка
  5. Заменить ${COMMAND} в Команда для получения спецификации компилятора: на ваш желаемый g ++ исполняемый файл.

Вот скриншот, чтобы помочь:

команда редактирования

Чтобы увидеть это в действии, вот несколько скриншотов с описанными изменениями и без них. На моей машине у меня есть /usr/bin/g++ которая является версией 5.3 и /usr/bin/g++-4.7 которая является версией 4.7.

По умолчанию g ++

г ++ 5

С переопределенным g ++ до версии 4

г ++ 4

Использование среды управления

Проблема с вышесказанным заключается в том, что вам нужно координировать г ++ между вашим Makefile и настройками сборки. Одним из решений этой проблемы является использование Среда сборки C / C ++ настройки для определения CXX в качестве компилятора использовать. Установить CXX переменная окружения в настройках проекта (Свойства проекта -> C / C ++ Build -> Среда) или глобальные предпочтения (предпочтения -> C / C ++ -> строить -> Среда).

Затем заменить ${COMMAND} с ${CXX},

Вот скриншот, который демонстрирует то, что я описал:

среда

Удалось сделать

Если вместо этого вы используете Managed Make, вам необходимо переопределить параметры сборки для отдельных инструментов. Эти настройки затем подают в Препроцессор включает пути, макросы и т. Д. настройки, используемые непосредственно Standard Make.

Чтобы изменить параметры сборки, вам нужно переопределить команду, используемую для компилятора, в нескольких местах, по одному разу для каждого типа инструмента. Начинать Свойства проекта -> C / C ++ Build -> настройки и затем отредактируйте каждый из них:

  • Компилятор GCC C ++ -> Обычно установлен на g++
  • Компилятор GCC C -> Обычно установлен на gcc
  • GCC C ++ Linker -> Обычно установлен на g++

Вот скриншот для демонстрации:

сделай скриншот

2

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

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

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