Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сборка проекта
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > Keil
Stanislav_S
Есть несколько вопросов по сборке проекта:
1) Такая проблема - изменяю код в одном файле - делаю Translate, запускаю Build однако он начинает пересобирать весь проект, поскольку в проекте файлов много. а ноут не шибко мощный, то это все затягивается минут на 5, что очень раздражает. Самое интересное другое беру другой проект (какой то пример из просторов сети) - делаю там тоже самое, там все нормально пересобирается только измененная часть и все соответственно происходит на порядок быстрее. Какие настройки надо смотреть? Сравнивал настройки проекта - все одинаково, а результат разный.

2) Для исходников пользуюсь внешним редактором, билд запуская через командную строку, при этом текущий проект открыт в IDE, при этом запускается Keil происходит сборка, потом закрывается, но в открытом проекте ничего не меняется, никаких изменений не происходит, кроме перезагрузки измененных исходников. Приходится заново билдить проект в открытой IDE, ну а потом уже грузить кристалл, поскольку происходит все очень медленно (как указанно выше), то это приводит к потере кучи времени. Можно это как-то побороть? Я все жизнь в IAR работаю там таких проблем нет sm.gif Если что версия - 5.24.1
k155la3
1. Если редактируете какой-либо h-файл, который вложен (даже опосредовано) во все модули - то так оно и будет sm.gif
2. Включать модуль в компиляцию или нет - определяется его временем последней модификации. Если что-либо
лезет в файл и меняет это время - он попадет на "пересборку".
3. Также, если каким-то образом пропали объектники модулей, которые не изменялись. Их придется пересоздавать.
4. Если пользуетесь внешним редактором - отключите автосохранение. Оно может и подгаживает.
и т. д. . . . .
Сергей Борщ
А проверьте дату создания ваших файлов и текущую дату на компьютере. Есть подозрение, что с точки зрения компьютера исходники последний раз менялись далеко в будущем после компиляции, поэтому, естественно, надо проект пересобрать полностью. Поскольку с чужими проектами такого не возникает - вероятнее всего неправильная дата создания у файлов, системное время в норме.
Stanislav_S
Цитата(k155la3 @ Jan 17 2018, 07:00) *
1. Если редактируете какой-либо h-файл, который вложен (даже опосредовано) во все модули - то так оно и будет sm.gif
2. Включать модуль в компиляцию или нет - определяется его временем последней модификации. Если что-либо
лезет в файл и меняет это время - он попадет на "пересборку".
3. Также, если каким-то образом пропали объектники модулей, которые не изменялись. Их придется пересоздавать.
4. Если пользуетесь внешним редактором - отключите автосохранение. Оно может и подгаживает.
и т. д. . . . .


Насчет h файлов я в курсе, естественно sm.gif Нет тут именно изменения происходят в .с файле, но пересобирается весь проект. Насчет объектников посмотрю, забыл про них. Автосохранение отключу, посмотрю что будет.

Цитата
А проверьте дату создания ваших файлов и текущую дату на компьютере. Есть подозрение, что с точки зрения компьютера исходники последний раз менялись далеко в будущем после компиляции, поэтому, естественно, надо проект пересобрать полностью. Поскольку с чужими проектами такого не возникает - вероятнее всего неправильная дата создания у файлов, системное время в норме.

Хм, спасибо за совет посмотрю, как то с этим проблем никогда не было, поэтому и не обращал внимание на дату.
jcxz
Цитата(Stanislav_S @ Jan 17 2018, 11:34) *
Насчет h файлов я в курсе, естественно sm.gif Нет тут именно изменения происходят в .с файле, но пересобирается весь проект. Насчет объектников посмотрю, забыл про них. Автосохранение отключу, посмотрю что будет.

У меня в некоторых проектах в прошивку заносился номер текущей ревизии на SVN (и другие данные), которые генерились в .h-файл скриптом, запускаемым из события Prebuild компилёра. Соответственно - при каждой компиляции перекомпилировались все файлы, куда этот хидер был включён.
Также хидеры могут быть включены в другие хидеры.
k155la3
Цитата(jcxz @ Jan 17 2018, 14:14) *
У меня в некоторых проектах в прошивку заносился номер текущей ревизии на SVN (и другие данные), которые генерились в .h-файл скриптом, запускаемым из события Prebuild компилёра. Соответственно - при каждой компиляции перекомпилировались все файлы, куда этот хидер был включён.
Также хидеры могут быть включены в другие хидеры.

SVN у меня абсолютно корректно работает (IAR + SVN + Tortoise).


ps
2 TC
---------
Может на PC "в фоне" запущен какой-то каталогизатор-индексатор файловой системы кривой ?
Если разберетесь с этим, выложите пож-ста инф. что было причиной.
---
"извечный пессимист" sm.gif "хорошо информированный оптимист".
Stanislav_S
Цитата(k155la3 @ Jan 17 2018, 23:52) *
SVN у меня абсолютно корректно работает (IAR + SVN + Tortoise).


ps
2 TC
---------
Может на PC "в фоне" запущен какой-то каталогизатор-индексатор файловой системы кривой ?
Если разберетесь с этим, выложите пож-ста инф. что было причиной.
---
"извечный пессимист" sm.gif "хорошо информированный оптимист".

Да нет такого не держу, конечно может быть антивирус мешает, теоретически?, Но с другой стороны, другой проект собирается без полной пересборки проекта - условия одинаковы, а результат разный sm.gif
uriy
Проверьте галочку Always build в свойствах файла. Правый клик по файлу в дереве проекта Project Window -> Options for file
Stanislav_S
Цитата(uriy @ Jan 18 2018, 08:59) *
Проверьте галочку Always build в свойствах файла. Правый клик по файлу в дереве проекта Project Window -> Options for file

Ок, посмотрю.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.