Я использую 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 были выделены красным и не разрешены. Затем я попытался найти, где я установил версию компилятора, используемую для индексации, но я не смог ее найти.
Есть два возможных ответа, в зависимости от того, выполняете ли вы «Стандартное производство» или «Управляемое производство». Стандартный Make означает, что вы пишете свои собственные Makefiles и управляете всем этим самостоятельно. Управляемый Make означает, что вы позволяете CDT создавать Makefiles и управлять ими.
Для стандартного изготовления все контролируется тем, что обнаруживает сканер. Сканер обрабатывает поиск всех включенных в систему файлов, которые являются частью вашего проекта, и которые передаются в индексатор для разрешения символов, а также позволяют такие вещи, как навигация по заголовочным файлам.
Чтобы изменить используемый компилятор, вам нужно заменить ${COMMAND}
с вашим выбранным компилятором. Вы (как пользователь) должны убедиться, что эта команда соответствует тому, что вы используете в вашем Makefile.
Чтобы изменить ${COMMAND}
:
${COMMAND}
в Команда для получения спецификации компилятора: на ваш желаемый g ++ исполняемый файл.Вот скриншот, чтобы помочь:
Чтобы увидеть это в действии, вот несколько скриншотов с описанными изменениями и без них. На моей машине у меня есть /usr/bin/g++
которая является версией 5.3 и /usr/bin/g++-4.7
которая является версией 4.7.
По умолчанию g ++
С переопределенным g ++ до версии 4
Проблема с вышесказанным заключается в том, что вам нужно координировать г ++ между вашим Makefile и настройками сборки. Одним из решений этой проблемы является использование Среда сборки C / C ++ настройки для определения CXX
в качестве компилятора использовать. Установить CXX
переменная окружения в настройках проекта (Свойства проекта -> C / C ++ Build -> Среда) или глобальные предпочтения (предпочтения -> C / C ++ -> строить -> Среда).
Затем заменить ${COMMAND}
с ${CXX}
,
Вот скриншот, который демонстрирует то, что я описал:
Если вместо этого вы используете Managed Make, вам необходимо переопределить параметры сборки для отдельных инструментов. Эти настройки затем подают в Препроцессор включает пути, макросы и т. Д. настройки, используемые непосредственно Standard Make.
Чтобы изменить параметры сборки, вам нужно переопределить команду, используемую для компилятора, в нескольких местах, по одному разу для каждого типа инструмента. Начинать Свойства проекта -> C / C ++ Build -> настройки и затем отредактируйте каждый из них:
g++
gcc
g++
Вот скриншот для демонстрации:
Других решений пока нет …