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

Reply via email to