[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-glpk] static build workaround for 4.30
From: |
glpk xypron |
Subject: |
Re: [Bug-glpk] static build workaround for 4.30 |
Date: |
Wed, 20 Aug 2008 22:36:47 +0200 |
Hello Robbie,
ltdl.h is part of package GNU libtool. Please, check that you have the
developer files for package libtool installed or use --enable-dl=dlfcn.
It might be helpful if Andrew could add the following information to the
INSTALL file:
...
--enable-dl=ltdl Enable shared library support (GNU)
--enable-dl=dlfcn Enable shared library support (POSIX)
+ --enable-dl=ltdl requires GNU Libtool to be installed
+ (cf. http://www.gnu.org/software/libtool/). Header file ltdl.h must
+ be in the include search path.
+
Currently this feature is only needed to provide dynamic linking to
ODBC and MySQL shared libraries (see below).
...
Best regards
Xypron
>
> Hello GLPK API users, Andrew, Xypron
>
> Many thanks to Andrew for his quick response and also
> Xypron. Further tests confirm that I was indeed using
> the wrong options for 'configure'.
>
> For the record, from 4.28 on (inclusive), the
> 'configure' script options controlling static linking
> comprise:
>
> --disable-dl
>
> statically link 'libglpk' with GLPK binaries
> including 'glpsol' (this is the default)
>
> --disable-shared
>
> statically link 'libglpk' with your application
> (the default is to dynamically link)
>
> I needed --disable-shared but had used --disable-dl.
> Here is the relevant screen capture from 'configure',
> by difference, under two variations:
>
> $ ./configure --disable-shared
>
> checking whether to build shared libraries... no
>
> $ ./configure
>
> checking whether -lc should be explicitly linked in... no
> checking whether to build shared libraries... yes
>
> (I guess "-lc" is 'libc' or 'glibc', the C library
> which supports calls like 'malloc')
>
> If you are wondering about the merits of static and
> dynamic linking, here is a short summary:
>
> static linking
>
> - GLPK code is included in your application at
> build-time (via 'libglpk.a' on Linux)
>
> - you can distribute your binaries without
> requiring that GLPK be present on the host
> system
>
> - there is no need to worry about GLPK version
> compatibility and API mismatch on host systems,
> arising from either stale GLPK dynamic
> libraries and newer application code (forward
> incompatibility) or application code which
> calls APIs that have been depreciated and then
> removed from a more recent GLPK dynamic library
> (backward incompatibility)
>
> dynamic linking
>
> - GLPK code is made available to your application
> at run-time (though 'libglpk.so' on Linux and
> 'libglpk.dll' (I guess) on Windows)
>
> - GLPK bug-fixes and improvements are
> automatically catered for (assuming the GLPK
> dynamic library is routinely upgraded)
>
> - application binaries are smaller in size
>
> - there COULD BE less memory consumption when
> multiple instances of your application are
> running
>
> ---
>
> Please note: further testing revealed another related
> problem for 4.30:
>
> $ make distclean
> $ ./configure --enable-dl
> $ make
> ...
> gcc -DHAVE_CONFIG_H -I. -I.. -I../include -g -O2 -MT glplib12.lo \
> -MD -MP -MF .deps/glplib12.Tpo -c glplib12.c -fPIC -DPIC \
> -o .libs/glplib12.o
> glplib12.c:36:18: error: ltdl.h: No such file or directory
> glplib12.c: In function '_glp_xdlopen':
> glplib12.c:41: warning: passing argument 1 of '_glp_lib_err_msg'
> makes pointer from integer without a cast
> glplib12.c:44: warning: assignment makes pointer from integer
> without a cast
> glplib12.c:46: warning: passing argument 1 of '_glp_lib_err_msg'
> makes pointer from integer without a cast
> glplib12.c: In function '_glp_xdlsym':
> glplib12.c:56: warning: assignment makes pointer from integer
> without a cast
> make[2]: *** [glplib12.lo] Error 1
> make[2]: Leaving directory
> `/home/robbie/synk/xeona/code_glpk/glpk-4.30/src'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/robbie/synk/xeona/code_glpk/glpk-4.30'
> make: *** [all] Error 2
>
> I am afraid I did not put any effort into isolating the
> issue, but can do if need be -- just ask please.
>
> --
>
> Some more comments follow in the quotings below.
>
> with best wishes, Robbie
>
> > ------------------------------------------------------------
> > To: Robbie Morrison <address@hidden>
> > Subject: Re: [Bug-glpk] static build workaround for 4.30
> > Message-ID: <address@hidden>
> > From: Andrew Makhorin <address@hidden>
> > Date: Thu, 14 Aug 2008 21:20:34 +0400
> > ------------------------------------------------------------
>
> [snip: summary of earlier problem regarding 'configure' options]
>
> > Probably there is some confusion. Options --enable-dl
> > and --disable-dl concern the shared library support
> > used by some glpk modules. If you need to build the
> > shared/static glpk library, you should pass options
> > --enable-shared and/or --enable-static to the
> > configure script.
>
> ------------------------------------------------------------
> To: Robbie Morrison <address@hidden>, address@hidden
> Subject: Re: [Bug-glpk] static build workaround for 4.30
> Message-ID: <address@hidden>
> From: "glpk xypron" <address@hidden>
> Date: Thu, 14 Aug 2008 20:50:03 +0200
> ------------------------------------------------------------
>
> > the default installation path for the configure
> > script is /usr/local (as ./configure --help reveals).
>
> > My Debian installation expects libraries to be placed
> > in /usr/lib and not in /usr/local/lib.
>
> Ubuntu seems to accept '/usr/local/lib' quite happily.
>
> > To overcome the problem, you might run the configure
> > script with --prefix /usr or create symbolic links in
> > /usr/lib to the libraries installed in
> > /usr/local/lib.
>
> > Shared library support is disabled by default (no
> > need to specify --disable-dl). --enable-dl has to be
> > specified when compiling with support for MySQL or
> > ODBC.
>
> This is not correct as far as I am aware, see my
> posting above.
>
> ---
> Robbie Morrison
> PhD student -- policy-oriented energy system simulation
> Technical University of Berlin (TU-Berlin), Germany
> [from IMAP client]
>
>
>
>
>
>
> _______________________________________________
> Bug-glpk mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/bug-glpk
--
Psssst! Schon das coole Video vom GMX MultiMessenger gesehen?
Der Eine für Alle: http://www.gmx.net/de/go/messenger03