2016-02-09 3 views
1

У меня возникло немало проблем, связанных с миграцией с Galileo на Mars версию Eclipse.Eclipse Mars.1 C++ включает завершение

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

Вот проблема:

1) Как указано в моей другой вопрос: Eclipse c++ class generation formating, если добавить текущий проект в 'свойствах проекта -> C++ General -> Paths и символы -> Включает', любой автомобиль -генерированные файлы поставляются с угловыми скобками, включая директиву препроцессора

2) Если я удаляю добавленный путь включения, автозаполнение заголовка не будет работать с путем относительно корневого каталога проекта (как угловой, так и кодовой формы). Цитированная форма с указанием пути к текущему файлу все еще работает.

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

Есть ли способ исправить эту проблему?

+0

(Благодарим за отправку полной информации в качестве нового вопроса, формат SO затрудняет задание последующих вопросов в комментариях.) –

ответ

1

AFAIK вы попали в ограничение в классе нового класса CDT. Пути и символы ->Включает, что должно точно соответствовать тому, что вы делаете в командной строке, чтобы индекеры работали должным образом, то есть обеспечивают ожидаемые доработки и т. Д. Поэтому вы должны иметь корневой каталог проекта, указанный в качестве include каталог индексатора.

Это означает, что мастер классов в вашем случае всегда будет использовать <> для ваших включений, основанных на логике внутри этого кода. К сожалению, я не думаю, что в текущей кодовой базе CDT есть что-то, что вы можете сделать для решения двух проблем одновременно. Я бы предположил, что стоимость работы мастера классов, как вы хотите, перевешивается потерей индексатора, работающей отлично.

Если значение того, что мастер делает правильные вещи в вашем случае, достаточно высок, я рекомендую его исправить. «Простое» изменение на NewClassCodeGenerator.getHeaderIncludeString() должно сделать трюк.

0

я, наконец, узнал очень легко работать, вокруг моей проблемы:

Использование точки 1) конфигурации

Перейти к «Window -> Preferences -> C/C++ -> Code Style -> Code шаблон»

Перейти к 'Files -> C++ Source File' и редактировать как тестовый и исходный шаблон и заменить:

${includes} 

By:

#include "${file_base}.h" 
Смежные вопросы