I have a rather nasty dependency problem with my pspell library.
As I discussed earlier on the list to make Pspell work with out loading
modules at runtime I perform the following steps:
Stage 1)
1) First compile Pspell
2) Compile Pspell modules which depend on parts of pspell.
After stage one I have the following dependencies.
libpspell --> libpspell-modules
libpspell_aspell -> libaspell -> libpspell
libpspell_ispell -> libpspell
Stage 2)
Go back into the Pspell distribution and recreate the libpspell-module
library which links in the modules and sets up a array of function
pointers.
Then relink the pspell library which amounts to recreating the .la files.
I then have the following dependencies
libpspell --> libpspell-modules -> libpspell_aspell -> libaspell
^-----------------------------------------------------/
-> libpspell_ispell
^------------------------------------/
Now, the problem is that when I try to compile the example I get this:
[kevina@kevin examples]$ make example-cxx
/usr/local/gcc-2.95.2/bin/g++
-DPACKAGE=\"pspell\" -DVERSION=\".10\" -I. -I.
-I/home/kevina/devel/aspell/dev-install//include
-O -c -o example-cxx.o `test -f example-cxx.cc || echo './'`example-cxx.cc
/bin/sh ../libtool --mode=link /usr/local/gcc-2.95.2/bin/g++ -O -o
example-cxx example-cxx.o -L/home/kevina/devel/aspell/dev-install//lib
-lpspell
mkdir .libs
/usr/local/gcc-2.95.2/bin/g++ -O -o example-cxx example-cxx.o
-L/home/kevina/devel/aspell/dev-install//lib
/home/kevina/devel/aspell/dev-install//lib/libpspell_aspell.a
/home/kevina/devel/aspell/dev-install//lib/libaspell.a
/home/kevina/devel/aspell/dev-install//lib/libpspell_ispell.a
/home/kevina/devel/aspell/dev-install//lib/libpspell-impl.a
/home/kevina/devel/aspell/dev-install//lib/libpspell.a
/home/kevina/devel/aspell/dev-install//lib/libpspell-modules.a
/home/kevina/devel/aspell/dev-install//lib/libpspell-modules.a(preload.o)(.rodata+0x4):
undefined
reference to `libpspell_aspell_LTX_new_pspell_manager_class'
/home/kevina/devel/aspell/dev-install//lib/libpspell-modules.a(preload.o)(.rodata+0xc):
undefined
reference to `libpspell_ispell_LTX_new_pspell_manager_class'
collect2: ld returned 1 exit status
I was able to get it link by specifying the libraries in the
following order which included listing libpspell twice:
pspell pspell-modules pspell_aspell aspell pspell pspell_ispell
Does anyone know of a good solution to this problem?
Everything works fine when shared libraries are used, but then again when
shared libraries are used I don't need to perform stage two because I can
load the modules at run time.
--
Kevin Atkinson
[EMAIL PROTECTED]
http://metalab.unc.edu/kevina/