After sending my first Linux Lazarus application to beta testers for
evaluation and testing, I got complains even from those advanced users
because of alot of application dependencies:
Components on the form:
- TDataSource
- TDBF
- TActionList
- TMainMenu
- TImageList
- TSaveDialog
- TPopupMenu
- TTimer
- TSpeedButton
- TComboBox
- TPanel
- TListBox
- TSplitter
- TIPHtmlPanel
- TStatusBar
ldd against executable report following dependancies:
linux-gate.so.1 => (0xffffe000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb7f57000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb7e90000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7e7a000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7b86000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7b4b000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7ac2000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb7abe000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7aba000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb7a81000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb7a68000)
libdl.so.2 => /lib/tls/libdl.so.2 (0xb7a64000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7a51000)
libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0xb7a23000)
libc.so.6 => /lib/tls/libc.so.6 (0xb78ec000)
libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0xb78e8000)
libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0xb78e0000)
libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0xb78dd000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb78ce000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb78c6000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb787d000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb784e000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb7845000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb783c000)
libm.so.6 => /lib/tls/libm.so.6 (0xb7815000)
/lib/ld-linux.so.2 (0xb7feb000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb77f0000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7783000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7771000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb774b000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb772b000)
There are libraries in this list not used directly from my code.
For example libXinerama.so.1 which is related to double monitor support.
By removing Interfaces from uses clause, things are getting mush better,
only following libs are reported as dependencies:
linux-gate.so.1 => (0xffffe000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb7f11000)
libdl.so.2 => /lib/tls/libdl.so.2 (0xb7f0d000)
libc.so.6 => /lib/tls/libc.so.6 (0xb7dd6000)
/lib/ld-linux.so.2 (0xb7feb000)
But application won't work :-)
ERROR: No widgetset object. Plz check if the unit "interfaces" was added to the
programs uses clause.
[FORMS.PP] ExceptionOccurred
Sender=Exception
Exception=No widgetset object. Plz check if the unit "interfaces" was added
to the programs uses clause.
Stack trace:
$08051120
TApplication.HandleException No widgetset object. Plz check if the unit
"interfaces" was added to the programs uses clause.
Stack trace:
$08051120
[FORMS.PP] ExceptionOccurred
- Is it possible somehow to avoid including all these dependencies?
- Can someone direct me on how statically include libraries to executable?
I know about risks, list members helped me alot on this,
but I would like to test it.
Regards, Panagiotis
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives