Error during make install

Christian Stimming christian at cstimming.de
Mon Apr 16 08:22:40 EDT 2012


John,

this build error as reported by Kevin points out a bit confusion in  
the src/engine/test/Makefile.am configuration:

Zitat von Kevin Hale Boyes <kcboyes at gmail.com>:
> make[5]: Entering directory `/home/hb/src/gnucash-trunk/src/engine/test'
> ...
> libtool: relink: gcc -shared  -fPIC -DPIC  .libs/utest-Split.o
> .libs/gnc-numeric.o  -Wl,--whole-archive
> ../test-core/.libs/libgncmod-test-engine.a -Wl,--no-whole-archive
> -Wl,-rpath -Wl,/opt/gnucash-trunk/lib -Wl,-rpath
> -Wl,/opt/gnucash-trunk/lib/gnucash
> -L/home/hb/src/gnucash-trunk/src/libqof/qof/.libs
> -L/home/hb/src/gnucash-trunk/src/gnc-module/.libs
> -L/home/hb/src/gnucash-trunk/src/core-utils/.libs
> -L/opt/gnucash-trunk/lib -L/lib -ltest-core
> -L/opt/gnucash-trunk/lib/gnucash -lgncmod-engine -lgnc-module
> -lgnc-core-utils -lguile -lgconf-2 -lgnc-qof -lgobject-2.0
> -lgthread-2.0 -lgmodule-2.0 -lrt -lglib-2.0 -lpthread -lm  -pthread
> -Wl,--export-dynamic   -pthread -Wl,-soname -Wl,libutest-Split.so.0 -o
> .libs/libutest-Split.so.0.0.0
> /usr/bin/ld: cannot find -ltest-core
> collect2: ld returned 1 exit status
> libtool: install: error: relink `libutest-Split.la' with the above
> command before installing it
> make[5]: *** [install-test_engineLTLIBRARIES] Error 1
> make[5]: Leaving directory `/home/hb/src/gnucash-trunk/src/engine/test'

Why should the "libutest-Split.la" library be installed anyway?  
Automake marks this library for installation becauses its name is  
listed in the test_engine_LIBRARIES variable, where the test_engine  
directory is defined as ${GNC_LIBEXECDIR}/${MODULEPATH}/test. However,  
the libutest-Split.la object in turn must have its library  
requirements listed (which is what I added yesterday) because  
otherwise windows won't build its DLL.

(Remember, windows DLLs are not allowed to contain unresolved  
references, whereas Linux .so libraries are allowed to have them, so  
that's why you don't see the windows build error on Linux unless you  
additionally set up a mingw cross compilers for creating a windows  
DLL. That's why I had to add the correct library flags here.)

Due to the Makefile rules, libutest-Split should be installed, but it  
probably contains references to libtest-core.la, which is not being  
installed (only listed in noinst_LTLIBRARIES). There's a contradiction  
here: Either you accidentally listed libutest-Split for installation  
and should instead list it in noinst_LTLIBRARIES, or you need to have  
libtest-core be installed as well. Which one to choose?

Regards,

Christian




More information about the gnucash-devel mailing list