Перейти к содержанию
    

Вопросы по Eclipse, CDT, Zylin embedded CDT

В Path and symbols все пути к CodeSourcery прописаны
А в path виндовса прописан путь к arm-none-eabi-gcc.exe? Ведь эклипса вызывает ее без указания абсолютного пути (во всяком случае именно так у вас прописан вызов в окне Discovery в строке Compiler invocation command. Попробуйте запустить arm-none-eabi-gcc.exe из командной строки - найдется?

т.е. мне нужно для совместимости _STDINT_EXP(INT_MAX) == 0x7fffffffL где-то указать ???
Нет, там все нормально. Да, что-то я затупил. Как точно выглядит жалоба?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это я пробовал, поверьте, перебрал фсе 7 вариантов.

А если ткнуть правой кнопкой мыши на название файла, выбрать Properties, и там выбрать вкладку "Recource", то

- какая кодировка указана? (в строке "inherited from container:xxx"_)?

- что будет, если отметить "Other" и выбрать UTF-8 (вроде она)?

Что касаемо notepad-а, то он определяет UTF-8 по специальному заголовку, который все остальные редакторы смело отрезают.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо всем.

Половина одной проблемы решилась:

При инсталяции 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 прописать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При инсталяции 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++). Лучше второе, здесь уже писали почему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И снова драсьте! Всем спасибо за подсказки.

 

А в path виндовса прописан путь к arm-none-eabi-gcc.exe? Ведь эклипса вызывает ее без указания абсолютного пути (во всяком случае именно так у вас прописан вызов в окне Discovery в строке Compiler invocation command. Попробуйте запустить arm-none-eabi-gcc.exe из командной строки - найдется?

Находится и версию правильно выдает, а иначе проект не компилился бы.

 

Да, что-то я затупил. Как точно выглядит жалоба?

Жалоба конечно мелкая, но дело же в принципе. (Кстати со sprintf это действительно я сам ступил, а IAR проглотил... +1 в пользу GCC)

Собсно жалоба вот:

post-45907-1295000985_thumb.jpg

Если открываю в окне системные инклюды от CodeSourery Lite, например stdint-gcc.h, то там все typedef'ы светятся, а вот в *.c и *.h в проекте не светятся, причем ТОЛЬКО typedef'ы.

При нажатии F3 на uint32_t например, пишет внизу, что Eclipse не находит этот символ в индексе. :wacko:

Странно, что редактор понимает что происходит инициализация переменной 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, у кого есть время и желание - гляньте плз, на предмет раскраски синтаксиса.

 

З.Ы.

Что то не пойму, как указывать автора в шапке вставляемой цитаты?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня Ваш воркспейс работает и всё подсвечивает, но не сразу всё получилось.

Попробуйте сделать Refresh из контекстного меню проекта (или F5).

Чтобы не делать это всякий раз вручную сделайте Window->Preferences->General->Startup and Shutdown->Refresh workspace on startup и Window->Preferences->General->Workspace->Refresh automatically

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поскольку метод молотка работает - стал разбираться дальше:

Когда в 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 опять погасли. :wacko:

 

Сделал следующее в преференсах Эклипсы в Indexer'е:

post-45907-1295116139_thumb.jpg

Почему по факту использующийся stdint-gcc.h оказался "From Inactive Code" и нет попадает в индексы?! :angry2:

Сегодня это stdint-gcc.h, а завтра будет другой хедер засерен, что же так и рыться каждый раз...

Изменено пользователем AndOr

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавлю вопросец, возможно глупый, но все-таки. Как удалить установленное дополнение?

Я пока вижу только два варианта:

1. Откат к предыдущей конфигурации. Подходит только, если речь идет о только что установленном плагине.

2. Ручное удаление файлов плагина из папки эклипса с последующим запуском ./eclipse --clean. Как-то не очень изящно.

Может я что-то не вижу очевидного в меню?

 

UPD: нашел!

help->about eclipce, кнопка "installation details" и там можно удалить установленные дополнения.

Как-то, на мой взгляд, не туда это поместили, ну да ладно.

Изменено пользователем IgorKossak
Удаление ненужных пробельных строк

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как в Еклипсе скопировать проект (создать аналогичный с другим именем)?

Пробовал разные варианты создания нового проекта и экспорта-импорта - либо не копируется часть настроек, либо нарушается структура папок

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как в Еклипсе скопировать проект (создать аналогичный с другим именем)?
Я просто копирую папку проекта и изменяю название в файлах .cproject и .project

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я просто копирую папку проекта и изменяю название в файлах .cproject и .project

+1 ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как в Еклипсе скопировать проект (создать аналогичный с другим именем)?

Копируете папку проекта под левым именем в воркспейс.

File->Import...->General->Existing Project into Workspace

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

Править вручную настроечные файлы небезопасно да и просто неприлично ;) .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я просто копирую папку проекта и изменяю название в файлах .cproject и .project

Спасибо!!

Странно что разработчики Еклипса такую фичу не предусмотрели

 

Копируете папку проекта под левым именем в воркспейс.

File->Import...->General->Existing Project into Workspace

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

Править вручную настроечные файлы небезопасно да и просто неприлично ;) .

 

А таким способом не получается, почему-то пытается искать архивы(хотя выбрано именно Existing Project into Workspace), предлагает создать папку... :(

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас попробовал ещё один способ, прямо в эклипсе жмём правую кнопку мыши на имени проекта, выбираем "Copy". Потом ПКМ в пустом месте - "Paste". Эклипс запрашивает имя для нового проекта. И телемаркет:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...