-
Скачал Lazarus 0.9.1 beta появились вопросы...
1. Программы получаются размером 4мб!!! я так понял это с отладочной информацией...как уменьшить их? 2. При запуске появляется консольное окно, зачем оно? Хотелось бы убрать...но как?
Заранее спасибо!
-
Включить Smartlink при build'е, отрезать debug info. ppc386 -CX -XX -B -Xs
-
получилось 1.3 мб...должно быть меньше? и не совсем понятно куда писать "ppc386 -CX -XX -B -Xs"
-
получилось 1.3 мб...должно быть меньше? и не совсем понятно куда писать "ppc386 -CX -XX -B -Xs"
-
-
Использую такую строчку: ppc386 -CX -XX -B -Xs -WR -WN -Sd -WG -Fu test.pas Для такой программы: program test;
begin
end. Размер 80.9 кб! Почему? как еще можно уменьшить его?
-
Если RTL была собрана без smartlink'а, будет прилинковываться весь модуль system целиком. Чтобы проверить мое предположения, скомпилируй тестовую прогу с ключиком -s и посмотри содержимое link.res на предмет, в каком виде линкуются system и (при режимах objfpc или Delphi) objpas. Если как obj-файлы - сделай make smart для RTL.
-
Скомпилил с ключем -s получил следующий файл link.res: SEARCH_DIR(c:\lazarus\pp\units\win32\rtl\) SEARCH_DIR(c:\lazarus\pp\units\win32\zlib\) SEARCH_DIR(c:\lazarus\pp\units\win32\winver\) SEARCH_DIR(c:\lazarus\pp\units\win32\unzip\) SEARCH_DIR(c:\lazarus\pp\units\win32\uncgi\) SEARCH_DIR(c:\lazarus\pp\units\win32\tcl\) SEARCH_DIR(c:\lazarus\pp\units\win32\sqlite\) SEARCH_DIR(c:\lazarus\pp\units\win32\regexpr\) SEARCH_DIR(c:\lazarus\pp\units\win32\paszlib\) SEARCH_DIR(c:\lazarus\pp\units\win32\pasjpeg\) SEARCH_DIR(c:\lazarus\pp\units\win32\opengl\) SEARCH_DIR(c:\lazarus\pp\units\win32\odbc\) SEARCH_DIR(c:\lazarus\pp\units\win32\netdb\) SEARCH_DIR(c:\lazarus\pp\units\win32\mysql\) SEARCH_DIR(c:\lazarus\pp\units\win32\mmsystem\) SEARCH_DIR(c:\lazarus\pp\units\win32\inet\) SEARCH_DIR(c:\lazarus\pp\units\win32\ibase\) SEARCH_DIR(c:\lazarus\pp\units\win32\gtk\) SEARCH_DIR(c:\lazarus\pp\units\win32\gdbint\) SEARCH_DIR(c:\lazarus\pp\units\win32\fpgtk\) SEARCH_DIR(c:\lazarus\pp\units\win32\fcl\) SEARCH_DIR(c:\lazarus\pp\units\win32\cdrom\) SEARCH_DIR(c:\lazarus\pp\units\win32\yacclib.ppu\) SEARCH_DIR(c:\lazarus\pp\units\win32\yacclib.o\) SEARCH_DIR(c:\lazarus\pp\units\win32\lexlib.ppu\) SEARCH_DIR(c:\lazarus\pp\units\win32\lexlib.o\) SEARCH_DIR(c:\lazarus\pp\units\win32\) SEARCH_DIR(c:\lazarus\pp\bin\win32\) INPUT( c:\lazarus\pp\units\win32\rtl\wprt0.o c:\lazarus\pp\units\win32\rtl\objpas.o c:\lazarus\pp\units\win32\rtl\system.o ) GROUP( libptest.a )
не совсем понял как дальше действовать... что значит сделать make smart для RTL ?
-
Этот файл - набор команд для линкера. Смотри вот на что: >c:\lazarus\pp\units\win32\rtl\objpas.o >c:\lazarus\pp\units\win32\rtl\system.o Значит, я был прав, и линкутся не как smart. Если бы был smart, этих строк бы не было, но в разделе GROUP было бы еще c:\lazarus\pp\units\win32\rtl\libpobjpas.a c:\lazarus\pp\units\win32\rtl\libpsystem.a
Значит, этих файлов нет, потому что system.pp и objpas.pp скомпилированы не под smartlink. Их надо заново перекомпилировать из исходников командой <ПУТЬ>make smart из каталога, содержащего исходники RTL для Win32, в том числе файл makefile. А утилита make.exe должна быть из дистрибутива FPC, cygwin или mingw32.
Удачи!
-
PVOzerski, все получилось ;)) странно а почему они по дефолту не со смартлинком скомпилены? Использую такую строчку: ppc386 -CX -XX -B -Xs -WN -Og test.pas Размер 20кб, можно меньше или это предел для fpc? На Delphi5 размер 4.5 кб...
-
PVOzerski, все получилось ;)) странно а почему они по дефолту не со смартлинком скомпилены? Использую такую строчку: ppc386 -CX -XX -B -Xs -WN -Og test.pas Размер 20кб, можно меньше или это предел для fpc? На Delphi5 размер 4.5 кб...
|