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

 
 
 
Reply to this topicStart new topic
> (Make | Rebuild ) && conditional_compiling
Dog Pawlowa
сообщение Nov 16 2007, 09:11
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Часто использую вариант нескольких проектов в одном рабочем пространстве. Проекты используют в основном одни и те же файлы, условие компиляции определено в свойствах проекта. При переходе с проекта на проект файлы не компилируются автоматически. Обычно по понедельникам бывает сложно понять, что происходит sad.gif Теперь это случилось в пятницу smile.gif
Может, это дело как-то можно автоматизировать? Перешел с проекта на проект - всегда первый раз запускается компиляция всех файлов. Или чтобы предупреждение вываливалось.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
dxp
сообщение Nov 16 2007, 09:33
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



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

Вам решение в рамках оболочки IAR EW надо или вообще?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Николай Z
сообщение Nov 16 2007, 09:47
Сообщение #3


Местный
***

Группа: Участник*
Сообщений: 418
Регистрация: 20-08-07
Пользователь №: 29 930



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


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

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

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

Все сказанное - об IAR...
При дефолтных установках.

Сообщение отредактировал Николай Z - Nov 16 2007, 09:48
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Nov 16 2007, 11:55
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(dxp @ Nov 16 2007, 13:33) *
Вам решение в рамках оболочки IAR EW надо или вообще?

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

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


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
dxp
сообщение Nov 16 2007, 14:10
Сообщение #5


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



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

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

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

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


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Nov 16 2007, 14:48
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(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 минут, и со словом "Эврика" клянем себя, все среды и проч.

Теперь вопрос - где баг?


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 16 2007, 15:21
Сообщение #7


Гуру
******

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



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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Nov 16 2007, 16:42
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



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

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


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 21:54
Рейтинг@Mail.ru


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