Конференция "FreePascal" » компиляция [Win32]
 
  • Avenger[NhT] © (26.03.04 18:13) [0]
    Скачал Lazarus 0.9.1 beta появились вопросы...

    1. Программы получаются размером 4мб!!! я так понял это с отладочной информацией...как уменьшить их?
    2. При запуске появляется консольное окно, зачем оно? Хотелось бы убрать...но как?

    Заранее спасибо!
  • PVOzerski © (27.03.04 18:55) [1]
    Включить Smartlink при build'е, отрезать debug info.
    ppc386 -CX -XX -B -Xs
  • Avenger[NhT] © (28.03.04 05:27) [2]
    получилось 1.3 мб...должно быть меньше?
    и не совсем понятно куда писать "ppc386 -CX -XX -B -Xs"
  • Avenger[NhT] © (28.03.04 05:28) [3]
    получилось 1.3 мб...должно быть меньше?
    и не совсем понятно куда писать "ppc386 -CX -XX -B -Xs"
  • PVOzerski © (28.03.04 13:37) [4]
    >ppc386 -CX -XX -B -Xs Это если собирать из командной строки.
    Подробнее - http://pda.delphimaster.net/?id=1080222910&n=11
  • Avenger[NhT] © (16.04.04 01:12) [5]
    Использую такую строчку:
    ppc386 -CX -XX -B -Xs -WR -WN -Sd -WG -Fu test.pas



    Для такой программы:
    program test;

    begin
    end.



    Размер 80.9 кб! Почему? как еще можно уменьшить его?
  • PVOzerski © (16.04.04 10:11) [6]
    Если RTL была собрана без smartlink'а, будет прилинковываться весь модуль system целиком. Чтобы проверить мое предположения, скомпилируй тестовую прогу с ключиком -s и посмотри содержимое link.res на предмет, в каком виде линкуются system и (при режимах  objfpc или Delphi) objpas. Если как obj-файлы - сделай make smart для RTL.
  • Avenger[NhT] © (16.04.04 16:13) [7]
    Скомпилил с ключем -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

    ?
  • PVOzerski © (16.04.04 16:50) [8]
    Этот файл - набор команд для линкера. Смотри вот на что:
    >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.

    Удачи!
  • Avenger[NhT] © (17.04.04 01:35) [9]
    PVOzerski, все получилось ;))
    странно а почему они по дефолту не со смартлинком скомпилены?

    Использую такую строчку:
    ppc386 -CX -XX -B -Xs -WN -Og test.pas



    Размер 20кб, можно меньше или это предел для fpc?
    На Delphi5 размер 4.5 кб...
  • Avenger[NhT] © (17.04.04 01:36) [10]
    PVOzerski, все получилось ;))
    странно а почему они по дефолту не со смартлинком скомпилены?

    Использую такую строчку:
    ppc386 -CX -XX -B -Xs -WN -Og test.pas



    Размер 20кб, можно меньше или это предел для fpc?
    На Delphi5 размер 4.5 кб...
 
Конференция "FreePascal" » компиляция [Win32]
Есть новые Нет новых   [119243   +1][b:0][p:0.001]