Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: (Make | Rebuild ) && conditional_compiling
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Dog Pawlowa
Часто использую вариант нескольких проектов в одном рабочем пространстве. Проекты используют в основном одни и те же файлы, условие компиляции определено в свойствах проекта. При переходе с проекта на проект файлы не компилируются автоматически. Обычно по понедельникам бывает сложно понять, что происходит sad.gif Теперь это случилось в пятницу smile.gif
Может, это дело как-то можно автоматизировать? Перешел с проекта на проект - всегда первый раз запускается компиляция всех файлов. Или чтобы предупреждение вываливалось.
dxp
Цитата(Dog Pawlowa @ Nov 16 2007, 15:11) *
Часто использую вариант нескольких проектов в одном рабочем пространстве. Проекты используют в основном одни и те же файлы, условие компиляции определено в свойствах проекта. При переходе с проекта на проект файлы не компилируются автоматически. Обычно по понедельникам бывает сложно понять, что происходит sad.gif Теперь это случилось в пятницу smile.gif
Может, это дело как-то можно автоматизировать? Перешел с проекта на проект - всегда первый раз запускается компиляция всех файлов. Или чтобы предупреждение вываливалось.

Вам решение в рамках оболочки IAR EW надо или вообще?
Николай Z
Цитата(Dog Pawlowa @ Nov 16 2007, 12:11) *
Часто использую вариант нескольких проектов в одном рабочем пространстве. Проекты используют в основном одни и те же файлы, условие компиляции определено в свойствах проекта. При переходе с проекта на проект файлы не компилируются автоматически. Обычно по понедельникам бывает сложно понять, что происходит sad.gif Теперь это случилось в пятницу smile.gif
Может, это дело как-то можно автоматизировать? Перешел с проекта на проект - всегда первый раз запускается компиляция всех файлов. Или чтобы предупреждение вываливалось.


Кнопочка/опция Rebuild All - должна удалить все объектники в проэкте и выполнить построение с нуля...

Просто Rebuild должен проверить даты создания исполняемого кода и перелинковать/перекомпидировать, если есть более поздние исходники и/или объектные файлы.

Более поздние файлы в окне пректа отмечаются красными звездами...

Все сказанное - об IAR...
При дефолтных установках.
Dog Pawlowa
Цитата(dxp @ Nov 16 2007, 13:33) *
Вам решение в рамках оболочки IAR EW надо или вообще?

Работаю в оболочке. Любое не требующее особых усилий решение, и сообщения достаточно.
Давным давно, еще работая на Паскале, после определенного этапа переходил на запуск bat-файла, в котором и перекомпилировалось все, и прошивки готовились, чтобы гарантированно избежать неучтенных изменений установок среды.
В принципе, самому нужно быть собраннее, но перерывы отрицательно влияют.

Наверно, можно поиграться с определениями, чтобы линкер выдавал ошибку, если файлы компилировались для разных условий.
dxp
Цитата(Dog Pawlowa @ Nov 16 2007, 17:55) *
Работаю в оболочке. Любое не требующее особых усилий решение, и сообщения достаточно.
Давным давно, еще работая на Паскале, после определенного этапа переходил на запуск bat-файла, в котором и перекомпилировалось все, и прошивки готовились, чтобы гарантированно избежать неучтенных изменений установок среды.
В принципе, самому нужно быть собраннее, но перерывы отрицательно влияют.

Наверно, можно поиграться с определениями, чтобы линкер выдавал ошибку, если файлы компилировались для разных условий.

Что-то не улавливаю всю глубину проблемы - если любой из исходников изменен, либо измены опции проекта, то оболочка должна сама пересобирать все, что надо - если изменен исходник, то будет перекомпилирован этот исходник с последующей сборкой (линковкой), если опции проекта - то весь проект целиком. Вы имеете в виду, что она (оболочка) этого не делает? Если так, то это баг. Или в чем проблема?

Сам в оболочке не собираю проекты, использую ее только в качестве отладчика.
Dog Pawlowa
Цитата(dxp @ Nov 16 2007, 18:10) *
Что-то не улавливаю всю глубину проблемы - если любой из исходников изменен, либо измены опции проекта, то оболочка должна сама пересобирать все, что надо - если изменен исходник, то будет перекомпилирован этот исходник с последующей сборкой (линковкой), если опции проекта - то весь проект целиком. Вы имеете в виду, что она (оболочка) этого не делает? Если так, то это баг. Или в чем проблема?

Сам в оболочке не собираю проекты, использую ее только в качестве отладчика.

Глубина небольшая:
Есть два проекта А и Б, в каждый входят файлы 1 и 2.
1. Работали в проекте А, откомпилировали файлы 1 и 2.
2. Переключили на проект Б.
3. Изменили файл 1.
4. Запустили make - файл 1 будет откомпилирован заново, файл 2 не будет :
- Он не изменялся
- свойства проектов не изменялись
5. Наблюдаем странные результаты, поскольку в файле 2 было что-то типа:
#ifdef PROJ_A
char configuration = PROJ_A_CONFIG;
#endif
#ifdef PROJ_B
char configuration = PROJ_B_CONFIG;
#endif
6. Чешем затылок 5 минут, и со словом "Эврика" клянем себя, все среды и проч.

Теперь вопрос - где баг?
Сергей Борщ
Цитата(Dog Pawlowa @ Nov 16 2007, 16:48) *
Теперь вопрос - где баг?
Было подобное когда объектники разных конфигураций одного проекта складывал в одну директорию. Надо для каждого из проектов указать свою папку для объектников. Тогда в этой папке для проекта 1 будет объектник файла Б скомпилированный с установками проекта 1, а в папке проекта 2 он же, но с настройками проекта 2.
И в batch build добавить оба проекта, чтобы не забыть пересобрать какой-то из них при изменении общих файлов.
Dog Pawlowa
Цитата(Сергей Борщ @ Nov 16 2007, 19:21) *
Было подобное когда объектники разных конфигураций одного проекта складывал в одну директорию. Надо для каждого из проектов указать свою папку для объектников. Тогда в этой папке для проекта 1 будет объектник файла Б скомпилированный с установками проекта 1, а в папке проекта 2 он же, но с настройками проекта 2.
И в batch build добавить оба проекта, чтобы не забыть пересобрать какой-то из них при изменении общих файлов.

Спасибо! В эту сторону и не смотрел.
В целом работает, правда наблюдаются некоторые мелкие глюки среды (MSP 4.10)-
- компилирую проект А - ОК,
- компилирую проект Б - после компиляции красные точки изменений опять выставляются для всех файлов.
- компилирую проект Б повторно - они гаснут, даже без компиляции, ну и потом все нормально.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.