1.3.34. $SMARTLINK : Использовать «умную компоновку»

На верх  Назад  Вперёд

Модуль, который компилируется в состоянии {$SMARTLINK ON}, будет откомпилирован таким образом, чтобы его можно было использовать для «умной компоновки». Это означает, что модуль будет разделён логически на части: каждая процедура будет помещена в собственный объектный файл, а все объектные файлы будут помещены вместе в большой архив. Если использовать такой модуль в программе, то только те части кода, которые вам реально необходимы (то есть только те процедуры, которые вызываются из вашей программы) будут скомпонованы в вашу программу, что существенно уменьшит размер исполняемого файла.

Будьте внимательны: использование «умной компоновки» модулей замедляет процесс компиляции, потому что отдельные объектные файлы должны создаваться для каждой процедуры. Если вы имеете модули с большим количеством функций и процедур, это может быть трудоёмким процессом, тем более, если вы используете внешний ассемблер (ассемблер вызывается для ассемблирования каждой отдельного блока кода процедуры или функции).

Директива «умной компоновки» должна быть указана перед объявлением модуля:

{$SMARTLINK ON}
Unit MyUnit;
Interface

Эта директива эквивалентна переключателю командной строки -CX.