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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Организация проектов в Eclipse, Переползаю в Eclipse, нужна ваша помощь
YKonstantin
сообщение Feb 10 2008, 12:21
Сообщение #16


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 7-11-06
Пользователь №: 22 038



Цитата(Непомнящий Евгений @ Feb 10 2008, 13:19) *
Собственно вопрос таков - как включить в проект файлы, лежащие "над" проектом eclipse без использования абсолютных путей.
Я пробовал linked folders, однако они привязываются либо к абсолютному пути, либо к переменной workspace...


Так вроде ж : ${workspace_loc:/имя проекта} указывает в коневой каталог самого проекта.

Вот тут описание :
http://publib.boulder.ibm.com/infocenter/w...s/cexttools.htm

Сообщение отредактировал YKonstantin - Feb 10 2008, 12:23
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Feb 11 2008, 04:18
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



К сожалениию, это работает только в external tools. Указать так путь в linked folder нельзя. В частности, если написать ${workspace_loc} и посмотреть потом в свойства ресурса, то там будет C:\${workspace_loc}...

Судя по всему проекты eclipse заточены на то, чтобы весь код лежал "внутри" проекта...
Go to the top of the page
 
+Quote Post
YKonstantin
сообщение Feb 11 2008, 06:39
Сообщение #18


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 7-11-06
Пользователь №: 22 038



Цитата(Непомнящий Евгений @ Feb 11 2008, 06:18) *
Судя по всему проекты eclipse заточены на то, чтобы весь код лежал "внутри" проекта...


Позволю себе с вами не согласиться.
Веду несколько проектов со следующей структурой каталогов :
\
|--Platform
||-arm
||-pc
|-System

В arm создан проект компилирующийся для ARM7, к нему линком на каталог присоеденен System содержащий всякие менюшки и собственно файл содержащий "int main(void)".

В pc создан проект компилирующийся для ПК (ОС Windows), к нему линком на каталог присоеденен System содержащий всякие менюшки и собственно файл содержащий "int main(void)".

Т.е. имеется одно устройство и два проекта.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Feb 11 2008, 06:48
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Линком с абсолютным путем? Очень неудобно, особенно если проект лежит в репозитории и одновременно работаем с разными версиями проекта.
Линком через path-переменную workspace? Те же грабли - path-переменные задаются только на абсолютные пути.

Странно, что нет возможности подключить файлы\папки по относительным путям "вверх" от проекта...
Go to the top of the page
 
+Quote Post
YKonstantin
сообщение Feb 11 2008, 08:53
Сообщение #20


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 7-11-06
Пользователь №: 22 038



Цитата(Непомнящий Евгений @ Feb 11 2008, 08:48) *
Линком с абсолютным путем? Очень неудобно, особенно если проект лежит в репозитории и одновременно работаем с разными версиями проекта.


Ну, я привык, что новую версию надо заводить в случае кардинальных изменений в требованиях.
Например добавили энкодер, или от 5-ти кнопок оставили 2-3.
Поэтому достаточно завести новый каталог, скопировать туда уже существующий проект, в файлах ".cproject" и ".project" изменить пути и название проекта, и всё это новообразование считать новым проектом.
Согласитесь, что изменение в органах управления или в системе меню (устройство для заказчика X переделать для заказчика Y) достойно вывода в отдельный проект. Само собой, что одинаковые для всех проектов модули (вроде присловутого delay.c или bcd.c) можно расшаривать между всеми проектами, однако в случае передачи исходных текстов одного из проектов "на сторону" придется тащить за ним весьма сложную и избыточную структуру, что скорей всего приведет, извините к геморрою эдак 4-й стадии.

Хотя все выше приведенное есть ИМХО, поскольку я использую SVN только для контроля изменений вида "а что это я когда-то тут правил", а т.ж. для того чтобы иметь некий список произведенных работ и исправленных ошибок.
Go to the top of the page
 
+Quote Post
vetal
сообщение Feb 11 2008, 09:14
Сообщение #21


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



интересно, а кто мешает на общие части проекта сделать библиотеку?
И уже ее цеплять(линковать) к каждому проекту?
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Feb 11 2008, 09:34
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



это идея smile.gif Спасибо, попробую.


Попробовал - вроде ок.
Получается примерно так -
Код
папка с воркспейсом
  папка с версией XXX1
    общая часть
      проект eclipse
      исходники
    проект 1
      проект eclipse
      исходники
  папка с версией YY1
    общая часть
      проект eclipse
      исходники
    проект 1
      проект eclipse
      исходники


to YKonstantin:
у меня процесс разработки выглядит немного по другому - я создаю новую ветку всякий раз, когда прошивка уходит на тестирование. Ошибки, найденные при тестировании, правятся в этой ветке, а в основной ветке работа продолжается. Просто иногда тестирование занимает длительное время, соответственно к концу тестирования его приходится начинать заново - слишком много новых изменений.
Т.е. у меня вполне штатно идет работа с несколькими ветками одного проекта, вот и пытался придумать, как втиснуть это в eclipse.
Что касается гемора с передачей проекта на сторону - не могу ничего сказать, не сталкивался. Подозреваю, что мне проекты придется передавать только в случае перехода на новую работу - слишком уж они "тяжелые" smile.gif ...
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Feb 11 2008, 11:14
Сообщение #23


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

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



У меня
.metadata
в корне дерева каталогов проекта

В makefile
EXTRAINCDIRS = ../inc
для хедеров

source_dirs := . ../src
для исходных текстов, общих для проектов

Особенность с флагами компилятора:
если все исходные тексты в рабочей директории
CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst)

если в разных (в src и рабочей)
CFLAGS += -Wa,-adhlns=$(OBJDIR)/$(notdir $(<:%.c=$(OBJDIR)/%.lst))

Сделано для того, чтобы obj правильно располагались и брались.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
YKonstantin
сообщение Feb 11 2008, 11:17
Сообщение #24


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 7-11-06
Пользователь №: 22 038



Цитата(Непомнящий Евгений @ Feb 11 2008, 11:34) *
Получается примерно так -
Код
папка с воркспейсом
  папка с версией XXX1
    общая часть
      проект eclipse
      исходники
    проект 1
      проект eclipse
      исходники
  папка с версией YY1
    общая часть
      проект eclipse
      исходники
    проект 1
      проект eclipse
      исходники


Вот насчет папки с workspace.
Нет нужды ее холить и лелеять. Потому как при переходе к новой версии eclipse+cdt есть официальная рекомендация создавать workspace заново.
У меня есть опыт перехода, и было это так :
Eclipse стоит у меня не на системном диске, поскольку тот за-backup'лен, и может быть восстановлен "в ноль" когда мне захочется. Eclipse же не пользуется системным реестром и поэтому его не обязательно привязывать к текущему состоянию ОС. При первом запуске, на вопрос где держать workspace, я ответил "eclipse\workspace".
Когда пришло время установить связку eclipse+cdt более свежей версии, я посмотрел по конфигурационным файлам, и отобрал те из них где описывались подсветки, клавиатура и т.п. Сохранив эти файлы, я удалил каталог eclipse (вместе с workspace), а после установки новой версии скопировал старые файлы поверх новых. Т.о. получился новый eclipse со старыми настройками.

На основе приведенного личного опыта можно сделать вывод, что нет смысла организовывать работу с проектами относительно каталога с workspace.
Go to the top of the page
 
+Quote Post
klen
сообщение Feb 12 2008, 07:22
Сообщение #25


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



я так вообще просто выложил весь workspace в svn-репозиторий и каждый раз обновлюсь при загрузке на очередной машине. Если сети нет то перетаскиваю на флешке.

лично у меня про eclipce есть одна тонкость - когдато на старой eclipse+cdt сделал простой make-проект (неавижу умные системы) - при билде вызывается только make $(TARGET) без всяких внутренних билдеров. Так вот этот проект (а посути это набор файлов .cdtproject .cproject .project) я использую как скелет для начала проекта. свежими CDT при создании проекта неудается добится такогоже содержимого при создании проекта sad.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 8th July 2025 - 05:31
Рейтинг@Mail.ru


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