2008-11-08 1 views
7

У меня есть большая существующая кодовая база C++. Как правило, пользователи кодовой базы редактируют источник с помощью gvim, но мы хотели бы начать использовать отличные возможности IDE в Eclipse. Кодовая база имеет обширную иерархию каталогов, но исходные файлы используют директивы include без путей из-за некоторого voodoo, который мы используем в нашем процессе сборки. Когда я связываю источник с моим проектом в Eclipse, индексщик жалуется, что он не может найти файлы заголовков (потому что мы не указываем пути в наших включенных.) Если я вручную добавлю каталоги из рабочей области в путь включения, все работает чудесно, но, очевидно, добавить сотни каталогов вручную не представляется возможным. Был бы простой способ сказать Eclipse искать в любом месте проекта для включенных файлов, не добавляя их один за другим? Если нет, то может ли кто-нибудь предложить хорошее начальное место, например, какие классы расширить, для написания плагина, чтобы просто сканировать проект при создании/модификации и программно добавлять все каталоги в путь include?Искать весь проект для включенных в Eclipse CDT

ответ

2

Эта функция уже реализована в текущем потоке развития CDT и будет доступен в CDT 6.0, которая будет выпущена вместе с Eclipse 3.5 в июне 2009 года

В принципе, если у вас есть #include и заголовок файл существует где-то в вашем проекте, тогда CDT сможет найти его без необходимости вручную устанавливать пути включения.

Если вам нужна эта функция, вы можете загрузить и установить последнюю версию разработки CDT.

Eclipse Bugzilla: https://bugs.eclipse.org/bugs/show_bug.cgi?id=21356
Последние CDT 6.0 Строки: http://download.eclipse.org/tools/cdt/builds/6.0.0/index.html

5

Путь, который CDT управляет строить пути, посмотрев на .cdtbuild файл XML в базе каталога проектов (это может быть другое имя на окнах ... не уверен)

В этом вы должны см. что-то вроде

<option id="gnu.c.compiler.option.include.paths....> 
<listoptionValue builtIn="false" value="&quot;${workspace_loc:/some/path}$quot;" /> 
<listOptionValue ... /> 

... 
</option> 

Здесь вы найдете все пути сборки, которые вы настраиваете в gui. Достаточно просто добавить все каталоги к этому, используя простой скрипт perl для перехода к проекту и создания всех записей listOptionValue.

Это, очевидно, не идеальный метод. Но им любопытно, с какой системой сборки вы переходите, если это делается на основе, вы должны иметь возможность получить eclipse для использования ваших файлов make.

0

В зависимости от количества вуду, которое вы делаете в процессе сборки, Eclipse, возможно, не сможет правильно разобрать исходные файлы, особенно если у вас одинаково названные заголовки для разных исходных файлов. Если вы действительно хотите в полной мере использовать Eclipse, вам нужно будет убедиться, что с любой настройкой вы не будете путать парсер. Лично я бы рекомендовал иметь простой макет и процесс сборки.

Что касается вопроса, добавляя каталоги один за другим, это ваш лучший выбор.

1

От чтения this Eclipse CDT FAQ entry, это звучит, как Eclipse, может автоматически генерировать список включает каталоги, если вы начнете строить внутри Eclipse, и если ваша сборка выводит/g++ команды gcc перед фактическим началом gcc/g++. Вы можете изменить, как Eclipse запускает сборку, перейдя в «Свойства проекта», затем выбрав категорию «Сборка C/C++» и выбрав команду «Создать команду» в правой части диалогового окна.

+0

Я только что протестировал это - он работает самым неудобным образом. Он анализирует журнал построения и добавляет пути включения из строк g ++ -I/some/path в "system includes". Используя файл .cproject и добавив его самостоятельно, разрешите использовать его в VC. Auto-Discovery этого не делает. – Evgeny 2008-11-30 16:05:25