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 <kcbo...@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


_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to