Перейти к содержанию

    

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

и т. д. . . . .

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


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

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

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

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

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

и т. д. . . . .

 

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

 

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

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

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

 

 

ps

2 TC

---------

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

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

---

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SVN у меня абсолютно корректно работает (IAR + SVN + Tortoise).

 

 

ps

2 TC

---------

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

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

---

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация