Panagiotis Sidiropoulos wrote:

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.


If you know, can you post what Linux distributions your end-users are using, that are having these dependency problems?

Regards,
George

_________________________________________________________________
    To unsubscribe: mail [EMAIL PROTECTED] with
               "unsubscribe" as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to