libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Multiple definitions on Darwin, using convenience libs


From: Florian Schricker
Subject: Multiple definitions on Darwin, using convenience libs
Date: Wed, 05 Jul 2006 15:16:43 +0200

Hi List!


I'm in trouble building a huge shared lib from a long list of
convenience libs. Using Linux, everything's fine, the current
troublemaker is a "Darwin Kernel Version 8.7.0" machine.

Compiling all libs works without problems, a typical Makefile.am looks
like:

        noinst_LTLIBRARIES = liboptimize.la
        
        liboptimize_la_CXXFLAGS = @GRALAB_CPPFLAGS@
        liboptimize_la_LIBADD = @GRALAB_LIBS@
        liboptimize_la_LDFLAGS = @RG_LA_LDFLAGS@
        liboptimize_la_SOURCES = \
                boolexpr.cpp [...]
        
        liboptimize_ladir = $(includedir)/re-group/greql/optimize
        liboptimize_la_HEADERS = \
                optimize.h \ [...]
        

The "one lib" (libgreql) uses the following Makefile.am:

        libgreqldir             = $(libdir)/re-group
        libgreql_LTLIBRARIES         = libgreql.la
        
        libgreql_la_SOURCES     = greql.cpp
        libgreql_la_LDFLAGS     = @RG_LA_LDFLAGS@
        libgreql_la_LIBADD      = \
                ../pdlst/libpdlst.la \
                ../tsystem/libtsystem.la \
                ../optimize/liboptimize.la \
                ../regexp/libregexp.la \
                ../error/liberror.la \
                ../repre/librepre.la \
                ../path/libpath.la \
                ../cvalue/libcvalue.la \
                ../pathinterface/libpathinterface.la \
                ../coreval/libcoreval.la \
                ../eval/libeval.la \
                ../funbig/libfunbig.la \
                ../inline/libinline.la \
                ../queryresult/libqueryresult.la \
                ../schema/libschema.la \
                ../queryevaluator/libqueryevaluator.la \
                @XERCESC_LIBS@
        
        libgreql_adir = $(includedir)/re-group/greql
        libgreql_a_HEADERS = greql.h greqlversion.h


Libtool then goes trying to put things together; the call is:
        
/bin/sh ../libtool --mode=link g++  -g -O2
-L/Users/eyerq/local/lib/re-group -o libgreql.la
-rpath /Users/eyerq/local/lib/re-group -version-info 1:0:0
greql.lo ../pdlst/libpdlst.la ../tsystem/libtsystem.la 
../optimize/liboptimize.la ../regexp/libregexp.la ../error/liberror.la 
../repre/librepre.la ../path/libpath.la ../cvalue/libcvalue.la 
../pathinterface/libpathinterface.la ../coreval/libcoreval.la 
../eval/libeval.la ../funbig/libfunbig.la ../inline/libinline.la 
../queryresult/libqueryresult.la ../schema/libschema.la 
../queryevaluator/libqueryevaluator.la -L/Users/eyerq/local/lib -lxerces-c 
-lrgutil
g++ -dynamiclib  -single_module -flat_namespace -undefined suppress
-o .libs/libgreql.1.dylib  .libs/greql.o
-all_load  ../pdlst/.libs/libpdlst.a ../tsystem/.libs/libtsystem.a 
../optimize/.libs/liboptimize.a ../regexp/.libs/libregexp.a 
../error/.libs/liberror.a ../repre/.libs/librepre.a ../path/.libs/libpath.a 
../cvalue/.libs/libcvalue.a ../pathinterface/.libs/libpathinterface.a 
../coreval/.libs/libcoreval.a ../eval/.libs/libeval.a 
../funbig/.libs/libfunbig.a ../inline/.libs/libinline.a 
../queryresult/.libs/libqueryresult.a ../schema/.libs/libschema.a 
../queryevaluator/.libs/libqueryevaluator.a  -L/Users/eyerq/local/lib/re-group 
/Users/eyerq/local/lib/re-group/libgralab.5.0.0.dylib -L/Users/eyerq/local/lib 
-lxerces-c /Users/eyerq/local/lib/re-group/librgutil.1.0.0.dylib  -install_name 
 /Users/eyerq/local/lib/re-group/libgreql.1.dylib -compatibility_version 2 
-current_version 2.0


This fails with a long list of "multiple definitions of symbol xyz"
which seem to all come from one lib: liboptimize.


I am willing to provide as much information as needed as I'm on a loss
here; maybe someone has already seen some mistakes of mine or has an
idea?


regards,
Florian Schricker
Student assistant at the Institute for Software-Technology, 
University of Koblenz-Landau, Germany





reply via email to

[Prev in Thread] Current Thread [Next in Thread]