|
Хочется странного, Подсветка синтаксиса в Eclipse |
|
|
|
Apr 23 2015, 06:28
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Цитата(Сергей Борщ @ Apr 23 2015, 09:44)  Что-то делаете неправильно.  Увы, есть проблемы с пониманием процесса. Проведение описанных по ссылке действий, вообще не привело к какому либо наблюдаемому результату. создал в проекте таргет discovery - кликнул, в итоге получил: Код make -j2 discovery -- discovery for g++ -E -P -v -dD '' process_begin: CreateProcess(NULL, g++ -E -P -v -dD "", ...) failed. make (e=2): Не удается найти указанный файл.
make: *** [discovery] Error 2 видимо он считает что проект с плюсами закомментил: Код #ifeq ($(extension),c) @echo -- discovery for $(CC) $(CC) $(INCS) $(CFLAGS) -E -P -v -dD '$(specs_file)' #else # @echo -- discovery for $(CCX) # $(CXX) $(INCS) $(CXXFLAGS) -E -P -v -dD '$(specs_file)' #endif кликнул по таргету discovery, получил Код make -j2 discovery -- discovery for arm-none-eabi-gcc arm-none-eabi-gcc -mcpu=cortex-m4 -O3 -ggdb -fomit-frame-pointer -falign-functions=16 -ffunction-sections -fdata-sections -fno-common -flto -Wall -Wextra -Wstrict-prototypes -Wa,-alms=build/lst/ -DCORTEX_VTOR_INIT=0x20000000 -DRTOS_NIL -DCORTEX_USE_FPU=FALSE -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -MD -MP -MF .dep/discovery.d -E -P -v -dD '' arm-none-eabi-gcc: error: : No such file or directory Using built-in specs. COLLECT_GCC=arm-none-eabi-gcc Target: arm-none-eabi Configured with: /home/build/work/GCC-4-9-build/src/gcc/configure --build=i686-linux-gnu --host=i686-w64-mingw32 --target=arm-none-eabi --prefix=/home/build/work/GCC-4-9-build/install-mingw --libexecdir=/home/build/work/GCC-4-9-build/install-mingw/lib --infodir=/home/build/work/GCC-4-9-build/install-mingw/share/doc/gcc-arm-none-eabi/info --mandir=/home/build/work/GCC-4-9-build/install-mingw/share/doc/gcc-arm-none-eabi/man --htmldir=/home/build/work/GCC-4-9-build/install-mingw/share/doc/gcc-arm-none-eabi/html --pdfdir=/home/build/work/GCC-4-9-build/install-mingw/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-headers=yes --with-newlib --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/home/build/work/GCC-4-9-build/install-mingw/arm-none-eabi --with-libiconv-prefix=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-gmp=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-mpfr=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-mpc=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-isl=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-cloog=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-libelf=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for ARM Embedded Processors' --with-multilib-list=armv6-m,armv7-m,armv7e-m,cortex-m7,armv7-r Thread model: single gcc version 4.9.3 20150303 (release) [ARM/embedded-4_9-branch revision 221220] (GNU Tools for ARM Embedded Processors) rm -f spec.d какой файл оно не находит?
|
|
|
|
|
Apr 23 2015, 09:26
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Во-первых, у вас в makefile не задана переменная CCX. Поэтому пишет "-- discovery for". Во-вторых, просто кликать по discovery неправильно, потому что эта цель ожидает параметров. Эту цель дёргает сама эклипса.
Попробуйте после того, как всё настроите, перезапустить эклипсу, потом очистить собранные пути (Project->Properties->C/C++ General->Preprocessor Include Paths, Macros etc.->Providers, выбрать "CDT GCC Built-in compiler settings", нажать "Clear entries". После этого всё должно переиндексироваться и появиться.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Apr 23 2015, 10:21
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Цитата(AHTOXA @ Apr 23 2015, 14:26)  После этого всё должно переиндексироваться и появиться. Ув. Антоха. Благодарю за помощь, в основном работает. Но есть некоторые неясности. Не могли бы Вы, проиллюстрировать один момент: В зависимости от значения некоторой переменной(макроса? тэга?) в Makefile, в сишном исходнике вызывать тот или иной хидер. ну, условно говоря, в си-исходнике: Код #ifdef RTOS_SCMRTOS #include"scmRtos.h" #endif
#ifdef RTOS_FREERTOS #include"freeRtos.h" #endif или Код #if RTOS == SCM_RTOS #include"scmRtos.h" #elif RTOS == FREE_RTOS #include"freeRtos.h" #endif как будет выглядеть соответствующий фрагмент скрипта в Makefile. Мой вариант работает, но вот с корректной подсветкой/затемнением - проблема(оба вызова хидеров затенены) для первого варианта выше. Код ifeq ($(RTOS),) RTOS = SCM_RTOS endif
ifeq ($(RTOS), SCM_RTOS) DDEFS += -DRTOS_SCMRTOS endif
ifeq ($(RTOS), FREE_RTOS) DDEFS += -DRTOS_FREERTOS endif повторюсь, ситуация с хидерами - условна. Интересует сама механика.
Сообщение отредактировал nanorobot - Apr 23 2015, 10:41
|
|
|
|
|
Apr 23 2015, 11:12
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Цитата(AHTOXA @ Apr 23 2015, 15:46)  Да всё правильно у вас, я сам делаю точно так же. Вы не забываете передавать DDEFS компилятору в цели discovery? Не забываю. Но проблема с затенением/подсветкой имеет место. Оба вызова хидеров затенены. Но работает все как надо. ... в цели discovery? нет. это как? .... уже передаю. не помогает. и после index rebuild не помогает.
Сообщение отредактировал nanorobot - Apr 23 2015, 11:13
|
|
|
|
|
Apr 23 2015, 12:01
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(nanorobot @ Apr 23 2015, 14:12)  .... уже передаю. не помогает. и после index rebuild не помогает. После изменения makefile надо заново запускать discovery, простая переиндексация не помогает: Цитата(AHTOXA @ Apr 23 2015, 12:26)  (Project->Properties->C/C++ General->Preprocessor Include Paths, Macros etc.->Providers, выбрать "CDT GCC Built-in compiler settings", нажать "Clear entries". После этого всё должно переиндексироваться и появиться.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Apr 23 2015, 12:15
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Цитата(Сергей Борщ @ Apr 23 2015, 17:01)  После изменения makefile надо заново запускать discovery, простая переиндексация не помогает: перезапуск это наше все. Во всех случаях. Все равно. Речь только об достаточно узкой проблеме. все остальное ок. Правда оно тянет за собой все прочие ошибки парсинга, что весьма неприятно
Сообщение отредактировал nanorobot - Apr 23 2015, 12:18
|
|
|
|
|
Apr 24 2015, 09:49
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Цитата(AHTOXA @ Apr 24 2015, 11:10)  Всё же вы что-то не так делаете. У меня всё работает. Посмотрите на мой makefile, может увидите какую-нибудь мелочь. Антоха, спасибо за помощь. По Вашему Makefile разобрался. причина - INCS := $(patsubst %, -I "%", $(INCDIR)). я скармливал просто INCDIR.
|
|
|
|
|
May 25 2015, 07:12
|

Профессионал
    
Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877

|
Ещё один вопрос почти в тему. Eclipse Luna не понимает новомодную инициализацию структур Код struct AStruct { int a; int b; }
AStruct = { .a = 1, .b = 2, }; Парсер такую конструкцию не ест. Компилятор понимает. Где у него галка?.. Что спросить у гугла, не придумал :-)
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|