Почему C++ Builder 6 всегда компилирует все файлы?
Я вношу некоторые изменения в один файл, но BCB 6 компилирует все файлы при запуске приложения. Любая идея? Я использую Windows XP SP2.





Вы исходные файлы и двоичные объекты расположены на одном компьютере? Если нет, похоже, у вас проблема с синхронизацией сетевого времени.
Если это, скорее всего, проблема с файлом заголовка, либо включаемые файлы компилятора имеют дату изменения в будущем, либо ваше приложение зависит от некоторого файла заголовка, который изменяется во время компиляции, например, из-за импорта COM.
Обновлено: проверьте, что параметр VS имеет флаг для постоянной повторной компиляции, это может быть верно и для BCB, если он установлен, затем отключите его. Другая возможность состоит в том, что предварительно скомпилированные заголовки неправильно настроены для создания в каждом исходном файле.
Я не знаком с BCB 6, чтобы дать более точный ответ.
попробуйте этот плагин для компилятора BCB: Плагин Bcc32Pch IDE
Убедитесь, что вы используете команду «make», а не команду «build», если это не требуется.
При создании проекта с помощью инструментов Borland всегда возникала эта проблема - он не обязательно замечает, какие из них изменились, и начинает все компилировать.
Посмотрите на параметры предварительно скомпилированных заголовков, которые могут помочь ускорить процесс.
Когда Borland / CodeGear, начиная с C++ Builder 2007, перешла на систему MSBuild, компиляции стали намного быстрее и эффективнее.
Вы сделали все или многие свои файлы зависимыми от определенного модуля?
Любые файлы, зависящие от конкретного модуля, будут перестраиваться каждый раз при изменении структуры классов модуля (содержащейся в файле .h). Если, например, у вас есть модуль данных, к которому обращаются многие другие модули, вы будете видеть перестроение всех зависимых модулей при каждом изменении структуры класса модуля данных.
В Borland есть прагма, которая контролирует, сколько строк кода перекомпилируется.
В последние годы мне удалось (в каком-то проекте), что компилируются только изменения моего исходного кода. Не знаю, будет ли это работать в новых версиях Borland
Borland 6 имеет прагму "hdrstop". это активно только в том случае, если для параметра проекта «Заголовки предварительной компиляции» НЕ установлено значение «Нет».
лет назад у меня был очень медленный компьютер, и я увеличил время компиляции с часов до минут с помощью следующего трюка
все cpps стали этой первой строкой
#include "all.h"
#pragma hdrstop
по умолчанию было включено "vcl.h"
"all.h" будет включать весь заголовок, который нужен во всех! единицы. каждый модуль будет пропускать все источники, которые зависят от заголовка перед pragma hdrstop.
Пример:
Unit1.h
#include <string>
Unit1.cpp
#include "all.h"
#pragma hdrstop
#include "Unit1.h"
Unit2.h
#include <vcl>
Unit2.cpp
#include "all.h"
#pragma hdrstop
#include "Unit2.h"
all.h
#include <string>
#include <vcl>
Unit1.h
#include <string>
Unit1.cpp
#include "all.h"
#pragma hdrstop
#include "Unit1.h"
Unit2.h
#include <vcl>
Unit2.cpp
#include <vcl> //!!!!!!!!!!!!!!!!!!! produce a second version of an precompiled file
#pragma hdrstop
#include "Unit2.h"
all.h
#include <string>
#include <vcl>