Как правильно работать с другим компилятором 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 были выделены красным и не разрешены. Затем я попытался найти, где я установил версию компилятора, используемую для индексации, но я не смог ее найти.

1 ответ

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

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

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

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

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

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

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

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

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

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

г ++ 5

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

г ++ 4

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

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

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

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

среда

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

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

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

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

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

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

Другие вопросы по тегам