|
|
  |
Вопросы по Eclipse, CDT, Zylin embedded CDT, предлагаю обсуждать тут, может потом FAQ выжмем |
|
|
|
Jan 13 2011, 13:20
|

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

|
QUOTE (AndOr @ Jan 13 2011, 13:30)  В Path and symbols все пути к CodeSourcery прописаны А в path виндовса прописан путь к arm-none-eabi-gcc.exe? Ведь эклипса вызывает ее без указания абсолютного пути (во всяком случае именно так у вас прописан вызов в окне Discovery в строке Compiler invocation command. Попробуйте запустить arm-none-eabi-gcc.exe из командной строки - найдется? QUOTE (AndOr @ Jan 13 2011, 13:30)  т.е. мне нужно для совместимости _STDINT_EXP(INT_MAX) == 0x7fffffffL где-то указать ??? Нет, там все нормально. Да, что-то я затупил. Как точно выглядит жалоба?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 13 2011, 15:26
|

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

|
Цитата(AndOr @ Jan 13 2011, 15:12)  Это я пробовал, поверьте, перебрал фсе 7 вариантов. А если ткнуть правой кнопкой мыши на название файла, выбрать Properties, и там выбрать вкладку "Recource", то - какая кодировка указана? (в строке "inherited from container:xxx"_)? - что будет, если отметить "Other" и выбрать UTF-8 (вроде она)? Что касаемо notepad-а, то он определяет UTF-8 по специальному заголовку, который все остальные редакторы смело отрезают.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jan 13 2011, 15:44
|

Участник

Группа: Участник
Сообщений: 44
Регистрация: 10-03-09
Из: Всея Руси
Пользователь №: 45 907

|
Спасибо всем. Половина одной проблемы решилась: При инсталяции CodeSourcery Lite в path прописывается только C:\Program Files\CodeSourcery\Sourcery G++ Lite\bin; Для того, что бы инклюды видели не только arm-none-eabi-xxx, но и Ecliplse, надо добавить C:\Program Files\CodeSourcery\Sourcery G++ Lite\arm-none-eabi\include; и не забыть перезагрузить Eclipse, т.к. похоже path цепляется один раз при загрузке. Забавно, но синтаксис typedef-ов в самом stdint-gcc.h светится как надо, а в main.c серамно никак... Доеду до дома, попробую еще и C:\Program Files\CodeSourcery\Sourcery G++ Lite\lib\gcc\arm-none-eabi\4.5.1\include; в path прописать...
--------------------
Чужие ошибки ничему не учат, гораздо интереснее наделать своих.
|
|
|
|
|
Jan 13 2011, 18:42
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(AndOr @ Jan 13 2011, 20:44)  При инсталяции CodeSourcery Lite в path прописывается только C:\Program Files\CodeSourcery\Sourcery G++ Lite\bin; И этого достаточно. Цитата(AndOr @ Jan 13 2011, 20:44)  Для того, что бы инклюды видели не только arm-none-eabi-xxx, но и Ecliplse, надо добавить C:\Program Files\CodeSourcery\Sourcery G++ Lite\arm-none-eabi\include; и не забыть перезагрузить Eclipse, т.к. похоже path цепляется один раз при загрузке. Доеду до дома, попробую еще и C:\Program Files\CodeSourcery\Sourcery G++ Lite\lib\gcc\arm-none-eabi\4.5.1\include; в path прописать... Это всё лишнее. Путь к arm-none-eabi-xxx уже есть, а нужные инклуды эклипс вычисляет по discovery, она там для этого и нужна. И это нужно только для правильного "показывания" проекта и навигации по нём в среде. Что же касается компилятора, то он сам знает где искать свои инклуды. У меня всё так и работает и под Windows и под Linux на очень многих машинах. Результат абсолютно идентичен. Кстати, что запускаете для линковки? ld или gcc (g++). Лучше второе, здесь уже писали почему.
|
|
|
|
|
Jan 14 2011, 11:05
|

Участник

Группа: Участник
Сообщений: 44
Регистрация: 10-03-09
Из: Всея Руси
Пользователь №: 45 907

|
И снова драсьте! Всем спасибо за подсказки. Цитата А в path виндовса прописан путь к arm-none-eabi-gcc.exe? Ведь эклипса вызывает ее без указания абсолютного пути (во всяком случае именно так у вас прописан вызов в окне Discovery в строке Compiler invocation command. Попробуйте запустить arm-none-eabi-gcc.exe из командной строки - найдется? Находится и версию правильно выдает, а иначе проект не компилился бы. Цитата Да, что-то я затупил. Как точно выглядит жалоба? Жалоба конечно мелкая, но дело же в принципе. (Кстати со sprintf это действительно я сам ступил, а IAR проглотил... +1 в пользу GCC) Собсно жалоба вот:
Если открываю в окне системные инклюды от CodeSourery Lite, например stdint-gcc.h, то там все typedef'ы светятся, а вот в *.c и *.h в проекте не светятся, причем ТОЛЬКО typedef'ы. При нажатии F3 на uint32_t например, пишет внизу, что Eclipse не находит этот символ в индексе. Странно, что редактор понимает что происходит инициализация переменной new_x, т.е. то, что uint32_t это typedef редактор знает и переменную раскрашивает. Цитата Это всё лишнее. Путь к arm-none-eabi-xxx уже есть, а нужные инклуды эклипс вычисляет по discovery, она там для этого и нужна. И это нужно только для правильного "показывания" проекта и навигации по нём в среде. У меня почему-то Eclipse не находил stdint.h, stdbool.h и т.д., пока не прописал C:\Program Files\CodeSourcery\Sourcery G++ Lite\arm-none-eabi\include; в PATH. Теперь, как видите, все нашлось, правда прописка C:\Program Files\CodeSourcery\Sourcery G++ Lite\lib\gcc\arm-none-eabi\4.5.1\include; раскрасить typedef'ы не помогла Тут весь воркспейс
te_lcd_eclipse_v1.7z ( 653.51 килобайт )
Кол-во скачиваний: 82 с импортированным проектом от Terraelectronica, у кого есть время и желание - гляньте плз, на предмет раскраски синтаксиса. З.Ы. Что то не пойму, как указывать автора в шапке вставляемой цитаты?
--------------------
Чужие ошибки ничему не учат, гораздо интереснее наделать своих.
|
|
|
|
|
Jan 14 2011, 22:25
|

Участник

Группа: Участник
Сообщений: 44
Регистрация: 10-03-09
Из: Всея Руси
Пользователь №: 45 907

|
Refresh не помог (это я пробовал в числе первых). Авторефреш включил - без эффекта, хотя если будет "отжиматься" FAQ из этой темы, желательно это упомянуть, рядом с "отключить автобилд по сохранению". Пробежал практически по всем настройкам проекта и нажал Restore Defaults + Apply - без эффекта. Потом, тоже самое по преференсам - без эффекта. Установил снесённый (недавно!) за ненадобностью тулчейн от Yagarto - без эффекта, хотя проект компилит как и CodeSourcery. Жду любых идей... Вопрос не в тему: Какой командой в мейкфайле попросить тулчейн для начала представиться, чтоб из консоли было сразу понятно? Спрашиваю, потому что CodeSourcery на флаг -v (из командной сроки) выдает много лишнего, Yagarto по-меньше, но серамно не мало. Попробовал молотком - создал файл typedefs.h к проекту: #ifndef __TYPEDEFS_H__ #define __TYPEDEFS_H__ typedef unsigned long uint32_t; /* 32-bit unsigned data */ #endif /* !__TYPEDEFS_H_ */ Ну конечно uint32_t сразу засветился, другие типы uint16_t и т.д. ессно не светятся. Значит у меня Eclipse действительно не может подрубить эти символы в индекс из системных инклюдов на которые ссылаются заглавные stdint.h, stdbool.h и т.п. без особых на то распоряжений (настроек)... Только как заставить, не пойму...
Сообщение отредактировал AndOr - Jan 14 2011, 22:34
--------------------
Чужие ошибки ничему не учат, гораздо интереснее наделать своих.
|
|
|
|
|
Jan 15 2011, 17:39
|

Участник

Группа: Участник
Сообщений: 44
Регистрация: 10-03-09
Из: Всея Руси
Пользователь №: 45 907

|
Поскольку метод молотка работает - стал разбираться дальше: Когда в Include Browser отключил "Hide System Includes" и "Hide Includes From Inactive Code". Разглядел, что stdint.h сам следом подключает stdint-gcc.h, который почему-то засерен и значок его перечеркнут, т.е. он оказался инклюдом "From Inactive Code". По методу молотка добавил #include <stdint-gcc.h> рядом с #include <stdint.h> и вуаля, все засветилось!!!! Не удержался и удалил строку #include <stdint-gcc.h>, в результате typedef'ы продолжали высвечиваться. Дописал еще одну функцию, откомпилил, загрузил - прога работает... Перезапустил Eclipse... все typedef'ы типа uint32_t опять погасли. Сделал следующее в преференсах Эклипсы в Indexer'е:
Почему по факту использующийся stdint-gcc.h оказался "From Inactive Code" и нет попадает в индексы?!  Сегодня это stdint-gcc.h, а завтра будет другой хедер засерен, что же так и рыться каждый раз...
Сообщение отредактировал AndOr - Jan 15 2011, 18:29
--------------------
Чужие ошибки ничему не учат, гораздо интереснее наделать своих.
|
|
|
|
|
Jan 26 2011, 16:09
|
Местный
  
Группа: Свой
Сообщений: 262
Регистрация: 18-02-05
Из: SPb
Пользователь №: 2 743

|
Добавлю вопросец, возможно глупый, но все-таки. Как удалить установленное дополнение? Я пока вижу только два варианта: 1. Откат к предыдущей конфигурации. Подходит только, если речь идет о только что установленном плагине. 2. Ручное удаление файлов плагина из папки эклипса с последующим запуском ./eclipse --clean. Как-то не очень изящно. Может я что-то не вижу очевидного в меню? UPD: нашел! help->about eclipce, кнопка "installation details" и там можно удалить установленные дополнения. Как-то, на мой взгляд, не туда это поместили, ну да ладно.
Сообщение отредактировал IgorKossak - Jan 26 2011, 18:20
Причина редактирования: Удаление ненужных пробельных строк
|
|
|
|
|
Feb 2 2011, 11:51
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 25-12-10
Пользователь №: 61 871

|
Как в Еклипсе скопировать проект (создать аналогичный с другим именем)? Пробовал разные варианты создания нового проекта и экспорта-импорта - либо не копируется часть настроек, либо нарушается структура папок
|
|
|
|
|
Feb 2 2011, 13:07
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(adax @ Feb 2 2011, 13:51)  Как в Еклипсе скопировать проект (создать аналогичный с другим именем)? Копируете папку проекта под левым именем в воркспейс. File->Import...->General->Existing Project into Workspace Когда появится новый проект в воркспейсе правым кликом на нём в контекстном меню выбрать Rename и задать нужное название, папка переименуется автоматически. Править вручную настроечные файлы небезопасно да и просто неприлично  .
|
|
|
|
|
Feb 2 2011, 13:42
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 25-12-10
Пользователь №: 61 871

|
Цитата(Сергей Борщ @ Feb 2 2011, 14:59)  Я просто копирую папку проекта и изменяю название в файлах .cproject и .project Спасибо!! Странно что разработчики Еклипса такую фичу не предусмотрели Цитата(IgorKossak @ Feb 2 2011, 16:07)  Копируете папку проекта под левым именем в воркспейс. File->Import...->General->Existing Project into Workspace Когда появится новый проект в воркспейсе правым кликом на нём в контекстном меню выбрать Rename и задать нужное название, папка переименуется автоматически. Править вручную настроечные файлы небезопасно да и просто неприлично  . А таким способом не получается, почему-то пытается искать архивы(хотя выбрано именно Existing Project into Workspace), предлагает создать папку...
|
|
|
|
|
  |
6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0
|
|
|