У меня есть большая существующая кодовая база C++. Как правило, пользователи кодовой базы редактируют источник с помощью gvim, но мы хотели бы начать использовать отличные возможности IDE в Eclipse. Кодовая база имеет обширную иерархию каталогов, но исходные файлы используют директивы include без путей из-за некоторого voodoo, который мы используем в нашем процессе сборки. Когда я связываю источник с моим проектом в Eclipse, индексщик жалуется, что он не может найти файлы заголовков (потому что мы не указываем пути в наших включенных.) Если я вручную добавлю каталоги из рабочей области в путь включения, все работает чудесно, но, очевидно, добавить сотни каталогов вручную не представляется возможным. Был бы простой способ сказать Eclipse искать в любом месте проекта для включенных файлов, не добавляя их один за другим? Если нет, то может ли кто-нибудь предложить хорошее начальное место, например, какие классы расширить, для написания плагина, чтобы просто сканировать проект при создании/модификации и программно добавлять все каталоги в путь include?Искать весь проект для включенных в Eclipse CDT
ответ
Эта функция уже реализована в текущем потоке развития 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
Путь, который CDT управляет строить пути, посмотрев на .cdtbuild файл XML в базе каталога проектов (это может быть другое имя на окнах ... не уверен)
В этом вы должны см. что-то вроде
<option id="gnu.c.compiler.option.include.paths....>
<listoptionValue builtIn="false" value=""${workspace_loc:/some/path}$quot;" />
<listOptionValue ... />
...
</option>
Здесь вы найдете все пути сборки, которые вы настраиваете в gui. Достаточно просто добавить все каталоги к этому, используя простой скрипт perl для перехода к проекту и создания всех записей listOptionValue.
Это, очевидно, не идеальный метод. Но им любопытно, с какой системой сборки вы переходите, если это делается на основе, вы должны иметь возможность получить eclipse для использования ваших файлов make.
В зависимости от количества вуду, которое вы делаете в процессе сборки, Eclipse, возможно, не сможет правильно разобрать исходные файлы, особенно если у вас одинаково названные заголовки для разных исходных файлов. Если вы действительно хотите в полной мере использовать Eclipse, вам нужно будет убедиться, что с любой настройкой вы не будете путать парсер. Лично я бы рекомендовал иметь простой макет и процесс сборки.
Что касается вопроса, добавляя каталоги один за другим, это ваш лучший выбор.
От чтения this Eclipse CDT FAQ entry, это звучит, как Eclipse, может автоматически генерировать список включает каталоги, если вы начнете строить внутри Eclipse, и если ваша сборка выводит/g++
команды gcc
перед фактическим началом gcc
/g++
. Вы можете изменить, как Eclipse запускает сборку, перейдя в «Свойства проекта», затем выбрав категорию «Сборка C/C++» и выбрав команду «Создать команду» в правой части диалогового окна.
Я только что протестировал это - он работает самым неудобным образом. Он анализирует журнал построения и добавляет пути включения из строк g ++ -I/some/path в "system includes". Используя файл .cproject и добавив его самостоятельно, разрешите использовать его в VC. Auto-Discovery этого не делает. – Evgeny 2008-11-30 16:05:25