Eclipse CDT Error Parser для внешнего компоновщика на основе gcc

Я понимаю, что в CDT 7 будет включен анализатор ошибок регулярных выражений, но сейчас я использую CDT 6.

У меня есть внешний построитель CDT, который просто вызывает сценарий оболочки для запуска моей сборки (на основе Jam). В сборке используется GCC, а ошибки и предупреждения передаются в представление консоли, но, конечно, анализатор ошибок не просматривает их, поэтому в моем представлении «Проблемы» ничего не отображается.

Есть ли способ настроить CDT для использования его сканера GCC на выводе моей консоли для заполнения представления «Проблемы»? Парсер GCC включен, он просто не смотрит на мой вывод.


person Chris    schedule 17.03.2010    source источник


Ответы (1)


Я не уверен, что этот вопрос все еще актуален, но следующее решение должно работать для заполнения представления «Проблемы»:

1) Создайте пустой make-файл C++ в CDT (назовем его solution1)

2) В контекстном меню проекта (в Project Explorer) выберите «Импортировать...».

3) В мастере «Импорт» выберите «Общие/Файловая система», нажмите «Далее» и выберите исходный каталог. К сожалению, CDT 6 не позволяет создавать ссылки на файлы, такие как CDT 7. Вместо этого он копирует все исходники в расположение проекта в рабочей области. Таким образом, самый верхний каталог, который вы импортируете, должен содержать файл Jamroot. Не забудьте установить все флажки для всех необходимых файлов и папок в диалоговом окне «Импорт».

В качестве более элегантной альтернативы импорту вы можете просто создать папку в проекте eclipse и связать ее с исходной папкой, содержащей необходимый Jamfile - спасибо Vanuan за подсказку.

После добавления файлов откройте свойства проекта и внесите следующие изменения:

4) Убедитесь, что на странице «Сборщики» выбраны «Создание CDT» и «Создание конфигурации сканера». Для свойств CDT Builder я рекомендую выбрать все параметры, кроме «Во время автоматической сборки».

5) На странице "Сборка C/C++" снимите флажок "Использовать команду сборки по умолчанию" и введите что-то вроде "${HOME}/boost.build/bin/bjam". В «Местоположении сборки» вы должны поместить папку с необходимым джем-файлом, который вы хотите построить из иерархии вашего проекта. Например, "${workspace_loc:/solution1/Server}"

6) Перейдите на вкладку «Поведение» и добавьте необходимые параметры bjam для параметров «Сборка (инкрементная)» и «Очистка». Снимите флажок «Сборка при сохранении ресурсов (автоматическая сборка)».

7) В "C/C++ Build/Settings/Error Parsers" выберите все необходимые парсеры. Все остальное следует оставить в состоянии по умолчанию.

После этого вам должно быть хорошо идти.

Если у вас есть несколько проектов в исходном дереве и вы использовали подход «Импорт», имеет смысл создать отдельную конфигурацию сборки для каждого проекта и указать для них соответствующие значения «Расположение сборки». Я использую CDT 7, и поскольку он позволяет импортировать ссылки на исходные папки вместо создания физических копий, я просто создаю отдельный проект eclipse в рабочей области для каждого из целевых Jam-файлов. В CDT 6 это также будет работать, если вы добавили связанную папку вместо импорта источников.

person Krit    schedule 15.03.2011
comment
На CDT 6 нельзя создавать ссылки: на самом деле вы можете создать папку, связанную с другим местом. И вы также можете импортировать существующий проект из пользовательского пути (связанного) в рабочую область. - person Vanuan; 15.03.2011
comment
Также, вероятно, нет смысла создавать отдельные конфигурации сборки, поскольку система сборки Jam достаточно мощна, чтобы собирать все проекты одновременно. - person Vanuan; 15.03.2011
comment
Что касается отдельной сборки: это зависит от вашего рабочего процесса и вашего исходного дерева. Например, если у текущего есть несколько одноуровневых проектов, и вы сосредоточены на текущем прямо сейчас, вы можете ограничить область построения им. Что касается добавления ссылок на папки в проект CDT, это хорошая идея, и, похоже, она работает. Я обновлю свой ответ с ним. - person Krit; 15.03.2011