Compiling on Mandrake 8.2
Michael T. Garrison Stuber
garrisonstuber@bellsouth.net
Sat, 30 Mar 2002 21:52:29 -0500
Okay, I've found the problem, but I'm at a loss as to how to fix it. This
gets into deep dark arcane magic with libtool and make that I'm not really
up on. The final compile line that the make file generates (on my system)
is:
gcc -g -O2 -Wall -Wunused -Wall -Wno-unused
-Werror-implicit-function-declaration -I/usr/include/pgsql
-I/usr/include/pgsql -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2
-I/usr/lib/glib/include -I/usr/X11R6/include -I/usr/include/gnome-1.0
-DNEED_GNOMESUPPORT_H -I/usr/lib/gnome-libs/include
-I/usr/include/orbit-1.0 -I/usr/include -o .libs/gnucash MultiLedger.o
SplitLedger.o EuroUtils.o FileDialog.o gnc-component-manager.o
gnc-exp-parser.o gnc-main.o gnc-ui-util.o messages.o -rdynamic -rdynamic
-rdynamic -rdynamic -rdynamic register/libgncregister.a
register/gnome/libgncregistergnome.a guile/libgncguile.a
gnome/libgncgnome.a calculation/libgnccalc.a engine/.libs/libgncengine.so
-L/usr/lib -L/usr/X11R6/lib /usr/lib/libguppitank.so /usr/lib/libguppi.so
-lzvt -lutil /usr/lib/libbonobo-print.so
/usr/lib/libg-wrap-runtime-guile.so /usr/lib/libguile.so
/usr/lib/libgtkhtml.so /usr/lib/libbonobo.so /usr/lib/libbonobox.so
/usr/lib/libgal.so /usr/lib/libgnomeprint.so /usr/lib/libfreetype.so
/usr/lib/libglade-gnome.so /usr/lib/libglade.so /usr/lib/libxml.so -lz
/usr/lib/libgdk_pixbuf.so /usr/lib/libgnomecanvaspixbuf.so -lgnomeui
-lart_lgpl /usr/lib/libgdk_imlib.so -lSM -lICE -lgnome -lgnomesupport
/usr/lib/libesd.so /usr/lib/libaudiofile.so /usr/lib/libgconf-gtk-1.so
/usr/lib/libgconf-1.so /usr/lib/liboaf.so -lORBitCosNaming -lORBit -lIIOP
-lORBitutil /usr/lib/libgtk.so /usr/lib/libgdk.so /usr/lib/libgmodule.so
/usr/lib/libglib.so -ldl -lXi -lXext -lX11 /usr/lib/libghttp.so -ldb1
/usr/lib/libpopt.so -lm
I think (but I'm not sure) that this is actually generated by libtool. The
problem is that it's missing a reference to gnome/libgncgnome that should
be right after the series of -rdynamic statements. If I manually add it
and run the new line:
gcc -g -O2 -Wall -Wunused -Wall -Wno-unused
-Werror-implicit-function-declaration -I/usr/include/pgsql
-I/usr/include/pgsql -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2
-I/usr/lib/glib/include -I/usr/X11R6/include -I/usr/include/gnome-1.0
-DNEED_GNOMESUPPORT_H -I/usr/lib/gnome-libs/include
-I/usr/include/orbit-1.0 -I/usr/include -o .libs/gnucash MultiLedger.o
SplitLedger.o EuroUtils.o FileDialog.o gnc-component-manager.o
gnc-exp-parser.o gnc-main.o gnc-ui-util.o messages.o -rdynamic -rdynamic
-rdynamic -rdynamic -rdynamic gnome/libgncgnome.a register/libgncregister.a
register/gnome/libgncregistergnome.a guile/libgncguile.a
gnome/libgncgnome.a calculation/libgnccalc.a engine/.libs/libgncengine.so
-L/usr/lib -L/usr/X11R6/lib /usr/lib/libguppitank.so /usr/lib/libguppi.so
-lzvt -lutil /usr/lib/libbonobo-print.so
/usr/lib/libg-wrap-runtime-guile.so /usr/lib/libguile.so
/usr/lib/libgtkhtml.so /usr/lib/libbonobo.so /usr/lib/libbonobox.so
/usr/lib/libgal.so /usr/lib/libgnomeprint.so /usr/lib/libfreetype.so
/usr/lib/libglade-gnome.so /usr/lib/libglade.so /usr/lib/libxml.so -lz
/usr/lib/libgdk_pixbuf.so /usr/lib/libgnomecanvaspixbuf.so -lgnomeui
-lart_lgpl /usr/lib/libgdk_imlib.so -lSM -lICE -lgnome -lgnomesupport
/usr/lib/libesd.so /usr/lib/libaudiofile.so /usr/lib/libgconf-gtk-1.so
/usr/lib/libgconf-1.so /usr/lib/liboaf.so -lORBitCosNaming -lORBit -lIIOP
-lORBitutil /usr/lib/libgtk.so /usr/lib/libgdk.so /usr/lib/libgmodule.so
/usr/lib/libglib.so -ldl -lXi -lXext -lX11 /usr/lib/libghttp.so -ldb1
/usr/lib/libpopt.so -lm
it happily links and compiles.
I've tried hacking the makefile, and I can't figure out what I need to do
to make it stick the "gnome/libgncgnome" in. If I stick in an arbitrary
text string it makes it in there, and of course I get an error because the
file doesn't exist. If I stick in "gnome/libgncgnome" it seems to get
eaten -- by libtool? Any pointers would be appreciated. At least things
are compiling once again, albeit inconveniently.
--On Friday, March 29, 2002 12:13:53 PM -0500 "Michael T. Garrison Stuber"
<garrisonstuber@bellsouth.net> wrote:
> Greetings!
>
> Like an idiot I went ahead and upgraded my desktop to Mandrake 8.2. I
> am now getting a linking error when I try to build GNUCash. The error is
> identical to one reported under Debian Woody back in January. When the
> make scripts go to link up the GNUCash executable GCC spits out:
>
> gnome/libgncgnome.a(dialog-totd.o): In function
> `gnc_ui_totd_dialog_create':
> /usr/gnucash/gnucash-1.6/src/gnome/dialog-totd.c:110: undefined reference
> to `gnc_get_current_tip'
>
> plus twelve other "undefined reference" errors. All of the undefined
> references seem to be in guile/libgncguile.a, which is happily referenced
> in the link line. I've tried playing with different make settings. I've
> rebuilt from a clean sync from CVS. I'm going out of my skull here.
> Help!
>
> --
> Michael T. Garrison Stuber
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel@lists.gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel