Сергей Борщ 143 13 января, 2011 Опубликовано 13 января, 2011 · Жалоба В Path and symbols все пути к CodeSourcery прописаныА в path виндовса прописан путь к arm-none-eabi-gcc.exe? Ведь эклипса вызывает ее без указания абсолютного пути (во всяком случае именно так у вас прописан вызов в окне Discovery в строке Compiler invocation command. Попробуйте запустить arm-none-eabi-gcc.exe из командной строки - найдется? т.е. мне нужно для совместимости _STDINT_EXP(INT_MAX) == 0x7fffffffL где-то указать ???Нет, там все нормально. Да, что-то я затупил. Как точно выглядит жалоба? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 13 января, 2011 Опубликовано 13 января, 2011 · Жалоба Это я пробовал, поверьте, перебрал фсе 7 вариантов. А если ткнуть правой кнопкой мыши на название файла, выбрать Properties, и там выбрать вкладку "Recource", то - какая кодировка указана? (в строке "inherited from container:xxx"_)? - что будет, если отметить "Other" и выбрать UTF-8 (вроде она)? Что касаемо notepad-а, то он определяет UTF-8 по специальному заголовку, который все остальные редакторы смело отрезают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andor 0 13 января, 2011 Опубликовано 13 января, 2011 · Жалоба Спасибо всем. Половина одной проблемы решилась: При инсталяции 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 прописать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 13 января, 2011 Опубликовано 13 января, 2011 · Жалоба При инсталяции 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 цепляется один раз при загрузке. Доеду до дома, попробую еще и 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++). Лучше второе, здесь уже писали почему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andor 0 14 января, 2011 Опубликовано 14 января, 2011 · Жалоба И снова драсьте! Всем спасибо за подсказки. А в 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'ы не помогла :laughing: Тут весь воркспейс te_lcd_eclipse_v1.7z с импортированным проектом от Terraelectronica, у кого есть время и желание - гляньте плз, на предмет раскраски синтаксиса. З.Ы. Что то не пойму, как указывать автора в шапке вставляемой цитаты? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 14 января, 2011 Опубликовано 14 января, 2011 · Жалоба У меня Ваш воркспейс работает и всё подсвечивает, но не сразу всё получилось. Попробуйте сделать Refresh из контекстного меню проекта (или F5). Чтобы не делать это всякий раз вручную сделайте Window->Preferences->General->Startup and Shutdown->Refresh workspace on startup и Window->Preferences->General->Workspace->Refresh automatically Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andor 0 14 января, 2011 Опубликовано 14 января, 2011 (изменено) · Жалоба 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 и т.п. без особых на то распоряжений (настроек)... Только как заставить, не пойму... Изменено 14 января, 2011 пользователем AndOr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andor 0 15 января, 2011 Опубликовано 15 января, 2011 (изменено) · Жалоба Поскольку метод молотка работает - стал разбираться дальше: Когда в 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" и нет попадает в индексы?! :angry2: Сегодня это stdint-gcc.h, а завтра будет другой хедер засерен, что же так и рыться каждый раз... Изменено 15 января, 2011 пользователем AndOr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexMad 0 26 января, 2011 Опубликовано 26 января, 2011 (изменено) · Жалоба Добавлю вопросец, возможно глупый, но все-таки. Как удалить установленное дополнение? Я пока вижу только два варианта: 1. Откат к предыдущей конфигурации. Подходит только, если речь идет о только что установленном плагине. 2. Ручное удаление файлов плагина из папки эклипса с последующим запуском ./eclipse --clean. Как-то не очень изящно. Может я что-то не вижу очевидного в меню? UPD: нашел! help->about eclipce, кнопка "installation details" и там можно удалить установленные дополнения. Как-то, на мой взгляд, не туда это поместили, ну да ладно. Изменено 26 января, 2011 пользователем IgorKossak Удаление ненужных пробельных строк Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adax 0 2 февраля, 2011 Опубликовано 2 февраля, 2011 · Жалоба Как в Еклипсе скопировать проект (создать аналогичный с другим именем)? Пробовал разные варианты создания нового проекта и экспорта-импорта - либо не копируется часть настроек, либо нарушается структура папок Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 2 февраля, 2011 Опубликовано 2 февраля, 2011 · Жалоба Как в Еклипсе скопировать проект (создать аналогичный с другим именем)?Я просто копирую папку проекта и изменяю название в файлах .cproject и .project Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 2 февраля, 2011 Опубликовано 2 февраля, 2011 · Жалоба Я просто копирую папку проекта и изменяю название в файлах .cproject и .project +1 ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 2 февраля, 2011 Опубликовано 2 февраля, 2011 · Жалоба Как в Еклипсе скопировать проект (создать аналогичный с другим именем)? Копируете папку проекта под левым именем в воркспейс. File->Import...->General->Existing Project into Workspace Когда появится новый проект в воркспейсе правым кликом на нём в контекстном меню выбрать Rename и задать нужное название, папка переименуется автоматически. Править вручную настроечные файлы небезопасно да и просто неприлично ;) . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adax 0 2 февраля, 2011 Опубликовано 2 февраля, 2011 · Жалоба Я просто копирую папку проекта и изменяю название в файлах .cproject и .project Спасибо!! Странно что разработчики Еклипса такую фичу не предусмотрели Копируете папку проекта под левым именем в воркспейс. File->Import...->General->Existing Project into Workspace Когда появится новый проект в воркспейсе правым кликом на нём в контекстном меню выбрать Rename и задать нужное название, папка переименуется автоматически. Править вручную настроечные файлы небезопасно да и просто неприлично ;) . А таким способом не получается, почему-то пытается искать архивы(хотя выбрано именно Existing Project into Workspace), предлагает создать папку... :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 2 февраля, 2011 Опубликовано 2 февраля, 2011 · Жалоба Сейчас попробовал ещё один способ, прямо в эклипсе жмём правую кнопку мыши на имени проекта, выбираем "Copy". Потом ПКМ в пустом месте - "Paste". Эклипс запрашивает имя для нового проекта. И телемаркет:) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться