Jump to content

    

Сборка проекта

Есть несколько вопросов по сборке проекта:

1) Такая проблема - изменяю код в одном файле - делаю Translate, запускаю Build однако он начинает пересобирать весь проект, поскольку в проекте файлов много. а ноут не шибко мощный, то это все затягивается минут на 5, что очень раздражает. Самое интересное другое беру другой проект (какой то пример из просторов сети) - делаю там тоже самое, там все нормально пересобирается только измененная часть и все соответственно происходит на порядок быстрее. Какие настройки надо смотреть? Сравнивал настройки проекта - все одинаково, а результат разный.

 

2) Для исходников пользуюсь внешним редактором, билд запуская через командную строку, при этом текущий проект открыт в IDE, при этом запускается Keil происходит сборка, потом закрывается, но в открытом проекте ничего не меняется, никаких изменений не происходит, кроме перезагрузки измененных исходников. Приходится заново билдить проект в открытой IDE, ну а потом уже грузить кристалл, поскольку происходит все очень медленно (как указанно выше), то это приводит к потере кучи времени. Можно это как-то побороть? Я все жизнь в IAR работаю там таких проблем нет :) Если что версия - 5.24.1

Share this post


Link to post
Share on other sites

1. Если редактируете какой-либо h-файл, который вложен (даже опосредовано) во все модули - то так оно и будет :)

2. Включать модуль в компиляцию или нет - определяется его временем последней модификации. Если что-либо

лезет в файл и меняет это время - он попадет на "пересборку".

3. Также, если каким-то образом пропали объектники модулей, которые не изменялись. Их придется пересоздавать.

4. Если пользуетесь внешним редактором - отключите автосохранение. Оно может и подгаживает.

и т. д. . . . .

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
1. Если редактируете какой-либо h-файл, который вложен (даже опосредовано) во все модули - то так оно и будет :)

2. Включать модуль в компиляцию или нет - определяется его временем последней модификации. Если что-либо

лезет в файл и меняет это время - он попадет на "пересборку".

3. Также, если каким-то образом пропали объектники модулей, которые не изменялись. Их придется пересоздавать.

4. Если пользуетесь внешним редактором - отключите автосохранение. Оно может и подгаживает.

и т. д. . . . .

 

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

 

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

Хм, спасибо за совет посмотрю, как то с этим проблем никогда не было, поэтому и не обращал внимание на дату.

Share this post


Link to post
Share on other sites
Насчет h файлов я в курсе, естественно :) Нет тут именно изменения происходят в .с файле, но пересобирается весь проект. Насчет объектников посмотрю, забыл про них. Автосохранение отключу, посмотрю что будет.

У меня в некоторых проектах в прошивку заносился номер текущей ревизии на SVN (и другие данные), которые генерились в .h-файл скриптом, запускаемым из события Prebuild компилёра. Соответственно - при каждой компиляции перекомпилировались все файлы, куда этот хидер был включён.

Также хидеры могут быть включены в другие хидеры.

Share this post


Link to post
Share on other sites
У меня в некоторых проектах в прошивку заносился номер текущей ревизии на SVN (и другие данные), которые генерились в .h-файл скриптом, запускаемым из события Prebuild компилёра. Соответственно - при каждой компиляции перекомпилировались все файлы, куда этот хидер был включён.

Также хидеры могут быть включены в другие хидеры.

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

 

 

ps

2 TC

---------

Может на PC "в фоне" запущен какой-то каталогизатор-индексатор файловой системы кривой ?

Если разберетесь с этим, выложите пож-ста инф. что было причиной.

---

"извечный пессимист" :) "хорошо информированный оптимист".

Share this post


Link to post
Share on other sites
SVN у меня абсолютно корректно работает (IAR + SVN + Tortoise).

 

 

ps

2 TC

---------

Может на PC "в фоне" запущен какой-то каталогизатор-индексатор файловой системы кривой ?

Если разберетесь с этим, выложите пож-ста инф. что было причиной.

---

"извечный пессимист" :) "хорошо информированный оптимист".

Да нет такого не держу, конечно может быть антивирус мешает, теоретически?, Но с другой стороны, другой проект собирается без полной пересборки проекта - условия одинаковы, а результат разный :)

 

Share this post


Link to post
Share on other sites

Проверьте галочку Always build в свойствах файла. Правый клик по файлу в дереве проекта Project Window -> Options for file

Share this post


Link to post
Share on other sites
Проверьте галочку Always build в свойствах файла. Правый клик по файлу в дереве проекта Project Window -> Options for file

Ок, посмотрю.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this