[Lazarus] Size of binaries etc.

Graeme Geldenhuys graemeg.lists at gmail.com
Thu Mar 22 11:36:16 CET 2012


On 22 March 2012 12:09, Mark Morgan Lloyd <markMLl.lazarus at ....> wrote:
>
> NO. Definitely not, under the circumstances. As I've already said: what

No problem, just thought I would mention it.

BTW:
[just for comparison sake]
By default a simple test app - one Form, one Button and one Label,
produces a 800KB 64-bit executable under Linux using FPC 2.6.1. A
32-bit executable will probably be 30% smaller than that. This is just
with smartlinking and strip enabled - no other optimizations. So I
could probably reduce those sizes even more if I wanted to.



> tinker with the programs I most definitely don't want him to have to
> download a hodgepodge of external libraries and packages.


Umm, you do know that LCL based apps have a HUGE dependency list
compared to fpGUI ! So the "hodgepodge of external libraries" will be
when using LCL, *not* when using fpGUI.

-----------------------------------------------
$ cd fpgui_test
$ ldd project1
	linux-vdso.so.1 =>  (0x00007fff2f1ff000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f4968959000)
	libXft.so.2 => /usr/lib/libXft.so.2 (0x00007f4968744000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f49684bd000)
	libc.so.6 => /lib/libc.so.6 (0x00007f496813a000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007f4967f05000)
	libxcb.so.1 => /usr/local/lib/libxcb.so.1 (0x00007f4967ce7000)
	libdl.so.2 => /lib/libdl.so.2 (0x00007f4967ae3000)
	libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007f49678d9000)
	libz.so.1 => /lib/libz.so.1 (0x00007f49676c1000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f4968cb4000)
	libexpat.so.1 => /lib/libexpat.so.1 (0x00007f4967498000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f4967294000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f496708d000)


$ cd ../lcl_test
$ ldd project1
	linux-vdso.so.1 =>  (0x00007fff769ff000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x00007fb813194000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0x00007fb812e5e000)
	libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x00007fb812c41000)
	libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x00007fb81261f000)
	libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x00007fb812372000)
	libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007fb812129000)
	libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00007fb811e4b000)
	libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007fb811c46000)
	libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007fb811a41000)
	libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x00007fb8117f7000)
	libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007fb811574000)
	libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x00007fb811352000)
	libdl.so.2 => /lib/libdl.so.2 (0x00007fb81114e000)
	libc.so.6 => /lib/libc.so.6 (0x00007fb810dcb000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fb8133d6000)
	libxcb.so.1 => /usr/local/lib/libxcb.so.1 (0x00007fb810bad000)
	libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00007fb8108fa000)
	librt.so.1 => /lib/librt.so.1 (0x00007fb8106f2000)
	libm.so.6 => /lib/libm.so.6 (0x00007fb81046e000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0x00007fb81025c000)
	libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007fb810052000)
	libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007fb80fe4e000)
	libXi.so.6 => /usr/lib/libXi.so.6 (0x00007fb80fc3e000)
	libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x00007fb80fa35000)
	libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00007fb80f82a000)
	libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x00007fb80f61d000)
	libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x00007fb80f41a000)
	libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00007fb80f216000)
	libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007fb80f010000)
	libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x00007fb80ede6000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007fb80eb5f000)
	libz.so.1 => /lib/libz.so.1 (0x00007fb80e948000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007fb80e713000)
	libpcre.so.3 => /lib/libpcre.so.3 (0x00007fb80e4e4000)
	libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00007fb80e28b000)
	libdirectfb-1.2.so.0 => /usr/lib/libdirectfb-1.2.so.0 (0x00007fb80e007000)
	libfusion-1.2.so.0 => /usr/lib/libfusion-1.2.so.0 (0x00007fb80ddfd000)
	libdirect-1.2.so.0 => /usr/lib/libdirect-1.2.so.0 (0x00007fb80dbe4000)
	libpng12.so.0 => /lib/libpng12.so.0 (0x00007fb80d9bc000)
	libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0
(0x00007fb80d7b8000)
	libxcb-render.so.0 => /usr/local/lib/libxcb-render.so.0 (0x00007fb80d5af000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x00007fb80d3aa000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007fb80d1a4000)
	libresolv.so.2 => /lib/libresolv.so.2 (0x00007fb80cf8b000)
	libselinux.so.1 => /lib/libselinux.so.1 (0x00007fb80cd6c000)
	libexpat.so.1 => /lib/libexpat.so.1 (0x00007fb80cb43000)

-----------------------------------------------



> for Chumby-style appliances- provided obviously that they're not swept into
> irrelevance by iPad and Android.

fpGUI will have Android support very soon (just waiting on my next
phone upgrade). ;-)



-- 
Regards,
  - Graeme -


_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://fpgui.sourceforge.net




More information about the Lazarus mailing list