Форум: "Начинающим";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];
Вниз"умное связывание" компилятора Найти похожие ветки
← →
АК © (2007-01-25 17:44) [0]Была такая ситуация: писал программку под WinAPI, нужна была функция для вычисления арксинуса, подключил модуль Math и вызвал нужную функцию , размер проги при этом увеличивался примерно на 20Кб (это было вполне существенно), если я просто копировал эту функцию из модуля Math в свой, то размер увеличивался на копейки. Так в чём тогда заключается "умное связывание" компилятора, я ведь из использую всего одну функцию из модуля, а компилируется считай что весь. Те же модули Windows, Messages, System просто огромные и всё же целиком к exe-шнику они не прикрепляются.
← →
Джо © (2007-01-25 17:47) [1]Math использует также модули SysUtils и Types. И даже если решить (хоть это и не так), что он ничего из них не использует, в них имеются секции initialization и finalization, код из которых тоже будет линковаться к твоему исполнимому модулю.
← →
novill © (2007-01-25 18:02) [2]Секции initialization и finalization есть конкретно в молуле SysUtils.
кодprogram Project2;
{$APPTYPE CONSOLE}
{
uses
SysUtils;
}
begin
Readln;
{ TODO -oUser -cConsole Main : Insert code here }
end.
дает размер 9216 байт
кодprogram Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
begin
Readln;
{ TODO -oUser -cConsole Main : Insert code here }
end.
дает размер 39936
итого 30720 за подключение модуля SysUtils
← →
ак © (2007-01-25 18:06) [3]Так что - вся фича в SysUtils?
← →
novill © (2007-01-25 18:08) [4]> Так что - вся фича в SysUtils?
конкретно в секциях initialization и finalization и код который там выполняется :)
← →
ак © (2007-01-25 18:14) [5]Спасибо, просветили.
← →
Сергей М. © (2007-01-26 10:22) [6]
> е же модули Windows, Messages, System просто огромные и
> всё же целиком к exe-шнику они не прикрепляются
Прикрепляются. Точно так же как и любой другой юнит, ибо правила для всех юнитов с этой т.з. одни и те же.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 2.895 c