Deem |
Отправлено: 25.03.2004, 17:04 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Меня уже давно достала эта штука, но до сих пор выкручавался...
Новый проект имеет опции (где они вобще находятся???), при которых по F9 компилятся только те файлы, в которых произошли изменения. Понятно, что если изменяешь *.h, то компилятся все файлы, в которые он included.
Работаешь себе, работаешь... и вдруг замечаешь, что начинает компилится проект целиком, как при build project. Что-то вдруг меняется (ИМНО, но файлы пока не сравнивал) в файле проекта. Причем, иногда зависит от серьезных потрясений для Builder-а (типа добавление новых компонент или наследования через repository), а иногда — без видимой причины.
Я перерыл все установки, сам bpr-файл, но не нарыл ничего.
Если проект небольшой, а создавал новый проект и набивал его модулями из старого, и все в порядке. Для большого я брал сохраненный bpr и добавлял в него недостающие модули. Но с нынешним проектом это не помагает. Беру старый проект, подстраиваю его до конца, компилю раз — нормально. Второй — нормально. Потом начинается тотальная компиляция. Проект здоровый. Долго ждать . Причем я меняю всего одну букву и жму F9.
Помогите!!!!! Задолбало!!!
PS: а может изменяются настройки окружения билдера.
Мне это напоминает макровирус в доках, когда клавиша save в ворде работала как save as...
Отредактировано Deem — 25/03/2004, 18:22
|
|
klen |
Отправлено: 25.03.2004, 17:58 |
|
Машинист паровоза
Группа: Участник
Сообщений: 239
|
Наверно алгоритм у билдера военный — "Лучше перебдеть, чем недобдеть!"
У меня все как положено, компилируются только измененные файлы, хотя компоненты разные и хорошие пересобираю, ставлю и удаляю постоянно. Умемя другой глюк — когда тыкаешь в инспекторе в свойство которое содержит картинку — билдер слетает, надо все переставлять всместе с ОС.
Никто не отменял у компьтора вялотекущие болезни.
|
|
Deem |
Отправлено: 25.03.2004, 18:35 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Неделю назад была радость: грохнул винду ... Потом все наново поставил. Красота, если б не эта гадость с перекомпиляцией.
Ну а все таки?
|
|
Asher |
Отправлено: 26.03.2004, 09:13 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет.
А в Project->Options->Compiler->Pre-compiled headers что выбранно?
Надо вроде не None
|
|
Deem |
Отправлено: 26.03.2004, 10:10 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
To Asher
На такой мелочи меня не поймаешь. Там стоит как положено. И, однако, прекомпиляция заголовков влияет на скорость компиляции, а не на ее наличие или отсутствие.
Я говорю про компиляцию файлов, которые вообще не должны компилироваться. Посмотрю значение ключей компилятора. Може это поможет.
Не нашел я, какой ключ компилятора отвечает за Project Build. Я там вообще ничего подобного не увидел. К то знает, как управлять этим параметром компиляции из командной строки?
Отредактировано Deem — 26/03/2004, 12:07
|
|
Deem |
Отправлено: 29.03.2004, 13:19 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Фигня с полной перекомпиляцией проекта началась у меня тогда, когда я занаследовал компонент из EHLIB, который называется EhDBGridFindDialog (надо было мне подправить его внешний вид). Сразу билдеру захотелось получить ancestor type, и пришлось добавить к проекту дельфийский модуль.
Сам он так и лежит в E:\BCB.60\EH\Units. Но у меня проект разложен по нескольким папкам (все модули с++), и ничего. А вот после добавления вышеупомянутого модуля началась тотальная перекомпиляция. Долбался я долго. Никто помочь не может. Короче, разузнал я, что такая перекомпиляция бывает, когда билдер не может найти объектные файлы, ранее созданные. Тогда беру я и сливаю в главный каталог проекта файлы библиотеки EHLIB. После этого все заработало, как надо. Компилится только файл с изменениями, дальше — линковка.
Но все файлы в одной миске — дерьмо. Выковырял я EHLIB обратно, и
пошел по всем конфигурационным местам, прописал, где можно — неможно путь в файлам либы EH. Даже в PATH для винды.... И началось все сначала.... Снова из-за смещиния кнопки на одной форме компилится весь проект целиком.
Внимание, вопрс:
Где именно надо прописать путь к файлам библиотеки ЕH, чтобы билдер находил все, что ему надо?
|
|
bmv |
Отправлено: 31.03.2004, 12:52 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 7
|
В свойствах проекта на вкладке Directories/Conditionals в Include path добавляешь путь к хидерам, в Library path — путь к либам, конкретные либы добавляешь через Add File to Project (в главном модуле, где WinMain должно при этом появиться USELIB("bla-bla.lib")). Можно еще проверить в файле проекта, опция LIBFILES — там должна появиться нужная либа. Или если добавляется объектник, то он должен быть прописан в опции OBJFILES.
Если это уже сделано или не помогает, то больше мыслей пока нет |
|
Deem |
Отправлено: 05.04.2004, 11:49 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
To BMV
Это все уже давно прописано...
Вот после моего предидущего сообщения, когда я прописал что можно-нельзя где смог, появилась такая штучка: после того, как выкинешь из проекта исходный объект (на PAS) и наследованный (на C++), а потом засунешь их обратно в проект, начинает вести себя неплохо. Однако, уже в пятницу вроде заработало. В понедельник пришел — компилит весь проект. Думаю, все файлы устарели, пусть. Но это повторялось все утро, пока я снова не выполнил вышеописанную операцию. Короче, ужасы нашего городка.
Ладно, с этим хрен.
Есть еще одна хитрая штучка. Если я наследую класс с формой, и моя форма создается автоматически, то добавление lib или obj с родительским классом не проходит: вопит билдер в
Application->CreateForm(__classid(TSuperEhFindDlg), &SuperEhFindDlg);
, что тип (мой) неизвестен. Замолкает после добавления к проекту именно PAS-файла. Но это же фигня! Я, правда, не пробовал свою форму динамически создавать, но думаю будет то же. С DFM проблемы, что ли?
Отредактировано Deem — 05/04/2004, 12:52
|
|
avb |
Отправлено: 23.09.2005, 13:13 |
|
Не зарегистрирован
|
To Deem
Заметил, что такое случается, если поменять системную дату на компе. Например, вчера работал и было все Ок, сегодня установил ситемную дату на позовчера — запускаю Builder и работаю со вчерашним проектом — теперь компилит все модули подряд! |
|
olegenty |
Отправлено: 23.09.2005, 13:23 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
2 avb — это очевидно.
2 deem — я ничего лучшего не придумал, как окончательно перейти на запускающий exe и plugin'ы. помимо упрощения сопровождения, уменьшилось и время компиляции каждой dll (естественно).
|
|
avc* |
Отправлено: 23.09.2005, 13:55 |
|
Не зарегистрирован
|
QUOTE |
я ничего лучшего не придумал, как окончательно перейти на запускающий exe и plugin'ы
|
Аналогично. Полная перекомпиляция всего проекта только в крайнем случае. |
|
Dimon.Ru |
Отправлено: 23.09.2005, 15:02 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 92
|
а я делаю так:
нажимаю ALT+F9 -> происходит компиляция текущего модуля
потом нажимаю F9 -> идет линковка всех скомпиленных модулей.
вроде так происходит быстрее. |
|
dvv |
Отправлено: 24.09.2005, 21:09 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 43
|
Сейчас такая проблема у меня существует, но не сильно достает.
Такое меня сильно доставало, когда я работал еще на Borland C++.
Причину сейчас уже не вспомню, но что то связанное с временем создания файлов.
При компиляции в некотроых обстоятельствах (не помню каких) образовывался файл с "не той" датой.
Подтверждаю, что вышеупомянутая смена системной даты приводила к такому резултату.
Лечилось все очень просто: нужно удалить все файлы, которые получаются при компиляции, затем заново собрать проект.
|
|