реклама на сайте
подробности

 
 
> Eclipse Makefile project дефайны в мейкфайле, ifdef и индексация кода, Код за ifdef не индексируется и этих дефайнов эклипс не видит
Cosmojam
сообщение Oct 9 2013, 10:10
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 311
Регистрация: 12-01-11
Из: Калининград (Koenigsberg)
Пользователь №: 62 182



Есть кусок кода
Код
#if SOME_VAR
void func(void);
#else

SOME_VAR определена в каком-то хэдэре, который виден эклиспу, но по каким-то причинам он не видит этот дефайн и соответственно весь код под ifdef становится ему не виден. Это страшно неудобно т.к. очень привык Ctrl+click на функции и попадать к её определению. А если она определена под таким блоком ifdef, то эклипс её не видит и приходится мучится с поиском.

Пути к инклюдам эклипс видит (дописал их в path and symbols, по ктрл+клику находит инклюды). Там же в symbols дописал эти дефайны - не помогло.

Подскажите как бороться с этим?


--------------------
typedef enum { no, yes, maybe } bool; | блог тут
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
сарматъ
сообщение Oct 11 2013, 05:21
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



хых... расскажите какую проблему вы тут решаете? что то я не могу уловить разницы что с этими опциями

CODE
CDT GCC Built-in compiler Settings [checked]
Use providers shared between projects [unchecked]
Allocate console in the Console View [checked]
в командной строке:
make specs_file=${INPUTS} discovery


собираю что с теми что по умолчанию...
если вставляю это в майкфайл

CODE
ifeq ($(CXX_PROJECT),YES)
$(CXX) $(INCS) $(ALL_CXXFLAGS) -E -P -v -dD '$(specs_file)'
else
$(CC) $(INCS) $(ALL_CFLAGS) -E -P -v -dD '$(specs_file)'
endif
$(REMOVE) spec.d


вообще не собирается пишет ошибку что какого то разделителя не хватает...

Сообщение отредактировал сарматъ - Oct 11 2013, 05:22
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Oct 11 2013, 10:23
Сообщение #3


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



CODE

.PHONY: discovery
discovery:
1)ifeq ($(CXX_PROJECT),YES)
2) $(CXX) $(INCS) $(ALL_CXXFLAGS) -E -P -v -dD '$(specs_file)'
3)else
4) $(CC) $(INCS) $(ALL_CFLAGS) -E -P -v -dD '$(specs_file)'
5)endif
6) $(REMOVE) spec.d


Надеялся, что по мнемоникам не будет вопросов. laughing.gif Кратко прокомментирую.
Свой Makefile пытался сделать максимально универсальным. Можно использовать и другие названия (`GNUmakefile', `makefile', и `Makefile'), понимая разницу между ними.
В начале Makefile есть определение типа проекта: С (CXX_PROJECT=NO) или С++ (CXX_PROJECT=YES). В строке 1) проверяется тип проекта. Если С++ проект, то выполняется строка 2), в противном случае строка 4) (С проект). $(CXX) соответствующий компилятор g++ (например, arm-none-eabi-g++), $(CC) - gcc (arm-none-eabi-gcc). $(INCS) полный список каталогов для поиска заголовочных файлов, исключая каталоги самого компилятора. $(ALL_CXXFLAGS) - ключи (опции) для g++, $(ALL_CFLAGS) - для gcc. Они различаются, так как не все опции совпадают и могут быть применены (например, gnu99 для gcc). Строка 6) удаление ненужного служебного файла зависимостей spec.d, созданного в результате запуска компилятора.

Командная строка:
Код
make specs_file=${INPUTS} discovery

вызов утилиты make для достижения цели discovery для файла specs_file, название которого определяется встроенной в Eclipse переменной ${INPUTS}.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Cosmojam   Eclipse Makefile project дефайны в мейкфайле, ifdef и индексация кода   Oct 9 2013, 10:10
- - сарматъ   попробовать сделать переиндексацию   Oct 9 2013, 10:36
|- - Cosmojam   Цитата(сарматъ @ Oct 9 2013, 13:36) попро...   Oct 9 2013, 10:55
- - AHTOXA   Цитата(Cosmojam @ Oct 9 2013, 16:10) Подс...   Oct 9 2013, 11:14
|- - Сергей Борщ   QUOTE (AHTOXA @ Oct 9 2013, 14:14) Смотри...   Oct 9 2013, 11:45
||- - mdmitry   Цитата(Сергей Борщ @ Oct 9 2013, 15:45) Д...   Oct 9 2013, 14:17
|||- - Сергей Борщ   QUOTE (mdmitry @ Oct 9 2013, 17:17) Испол...   Oct 9 2013, 16:13
|||- - mdmitry   Цитата(Сергей Борщ @ Oct 9 2013, 20:13) К...   Oct 10 2013, 12:40
||- - IgorKossak   Цитата(Сергей Борщ @ Oct 9 2013, 14:45) Д...   Oct 10 2013, 17:25
||- - Сергей Борщ   QUOTE (IgorKossak @ Oct 10 2013, 20:25) В...   Oct 10 2013, 18:14
|- - Cosmojam   Цитата(AHTOXA @ Oct 9 2013, 14:14) Смотри...   Oct 9 2013, 17:56
- - Cosmojam   Кажется понял причину. В каталоге проекта есть неи...   Oct 10 2013, 09:17
|- - Сергей Борщ   QUOTE (сарматъ @ Oct 11 2013, 08:21) расс...   Oct 11 2013, 07:37
- - сарматъ   понял, спасибо, буду пробовать может там еще слов...   Oct 11 2013, 07:40
- - сарматъ   а если в проекте и с и с++?   Oct 11 2013, 10:36
|- - mdmitry   Цитата(сарматъ @ Oct 11 2013, 14:36) а ес...   Oct 11 2013, 11:40
- - сарматъ   ну с компиляцией то ладно - у меня чужой мейк файл...   Oct 11 2013, 11:47
|- - mdmitry   Цитата(сарматъ @ Oct 11 2013, 15:47) ну с...   Oct 11 2013, 11:54
- - сарматъ   да как раз эта ос у меня используется, сейчас ваш ...   Oct 11 2013, 12:08
- - IgorKossak   Слегка помучившись, после некоторых экспериментов ...   Dec 17 2013, 13:49
|- - mdmitry   Цитата(IgorKossak @ Dec 17 2013, 18:49) К...   Dec 17 2013, 14:22
- - IgorKossak   specs_file имеет расширение C для C++ и c для C. И...   Dec 17 2013, 14:34
|- - mdmitry   Цитата(IgorKossak @ Dec 17 2013, 18:34) s...   Dec 17 2013, 14:39
|- - IgorKossak   Цитата(mdmitry @ Dec 17 2013, 16:39) Если...   Dec 17 2013, 14:54
|- - mdmitry   IgorKossak, Вы проверяли такую ситуацию: проект им...   Dec 17 2013, 14:56
- - IgorKossak   Не проверял, но не вижу препятствий. Ведь если дел...   Dec 17 2013, 15:04
- - abutorin   Добрый день. Задам наверное глупый вопрос. Но я не...   Dec 31 2013, 10:08
|- - mdmitry   Цитата(abutorin @ Dec 31 2013, 14:08) Доб...   Jan 2 2014, 21:04
|- - abutorin   Цитата(mdmitry @ Jan 3 2014, 01:04) Цель ...   Jan 3 2014, 19:41
|- - mdmitry   Цитата(abutorin @ Jan 3 2014, 23:41) Когд...   Jan 3 2014, 20:55
|- - abutorin   Цитата(mdmitry @ Jan 4 2014, 00:55) Первы...   Jan 3 2014, 20:58
|- - mdmitry   Цитата(abutorin @ Jan 4 2014, 00:58) Посл...   Jan 3 2014, 21:10
|- - abutorin   Цитата(mdmitry @ Jan 4 2014, 01:10) сейча...   Jan 3 2014, 21:24
|- - mdmitry   Во вкладке Providers у меня отмечены некоторые нас...   Jan 4 2014, 10:30
- - Сергей Борщ   Я понял, что на вкладке Providers достаточно остав...   Jan 5 2014, 00:29
|- - abutorin   Цитата(Сергей Борщ @ Jan 5 2014, 04:29) Е...   Jan 5 2014, 07:02
|- - mdmitry   Цитата(Сергей Борщ @ Jan 5 2014, 04:29) C...   Jan 5 2014, 19:41
|- - AHTOXA   Я тут наконец-то дозрел до перехода на Luna. Вспом...   Nov 14 2014, 15:56
- - IgorKossak   Window->Preferences->C/C++->Indexer + Aut...   Jan 5 2014, 13:59
|- - abutorin   Цитата(IgorKossak @ Jan 5 2014, 17:59) Wi...   Jan 5 2014, 19:29
- - IgorKossak   По поводу индексации Антоха сказал всё правильно, ...   Nov 14 2014, 20:36
- - Aaron   Оу, спасибо! Наконец-то индексация в Luna зара...   Nov 28 2014, 05:59
- - swisst   Цитата(AHTOXA @ Nov 14 2014, 17:56) Я тут...   Jan 8 2015, 21:32
|- - AHTOXA   У вас в makefile похоже ошибка: Код"C:...   Jan 8 2015, 21:46
- - Alexey Belyaev   Прошу прощения что встреваю А тоже самое возможно...   May 15 2015, 09:13


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 14th August 2025 - 04:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01412 секунд с 7
ELECTRONIX ©2004-2016