[cgma-dev] Link error building parallel CGM with OCC

Hong-Jun Kim hongjun at mcs.anl.gov
Fri Oct 8 15:51:14 CDT 2010


Can you check how "libiGeom_la_LIBADD" is really defined if you run "make -p check"?

Hong-Jun

----- "Robert Smith" <smithrm at mcs.anl.gov> wrote:

> You're right it isn't explicitly in the link line.
> 
> It's defined as follows in the Makefile:
> 
> libiGeom_la_LIBADD = $(top_builddir)/libcgm.la
> 
> --Bob
> 
> On Oct 8, 2010, at 3:06 PM, hongjun at mcs.anl.gov wrote:
> 
> > It looks your link doesn't have "libcgm" in the link library list  
> > after "libiGeom", but I don't know why.
> > Can you tell me how your "libiGeom_la_LIBADD" in itaps directory is 
> 
> > defined?
> >
> > Hong-Jun
> >
> >
> > ----- "Robert Smith" <smithrm at mcs.anl.gov> wrote:
> >
> >> Has anyone encountered a problem building a parallel version of
> CGM
> >> with OCC (the patched version)?
> >> This is built on the new Ubuntu 10 release installed on the ANL
> >> compute servers (thrash specifically).  It is using MPI compiled
> with
> >>
> >> GCC 4.4.3.
> >>
> >> The issue comes during make check.  It first appears in the
> src/itaps
> >>
> >> directory when building chaman.  But it occurs in all 3 link steps
> >> taken in that directory.
> >>
> >> The log lines for the compile and link are below.
> >>
> >> make[3]: Entering directory
> `/nfs/fathom/libs/cgm/cgm-4.0.1/parallel/
> >>
> >> src/itaps'
> >> make  chaman   testgeom_occ partest
> >> make[4]: Entering directory
> `/nfs/fathom/libs/cgm/cgm-4.0.1/parallel/
> >>
> >> src/itaps'
> >> /home/fathom/3rdparty/mpich2/mpich2-1.2.1/gcc/bin/mpicxx -
> >> DHAVE_CONFIG_H -I. -I.. -I../geom/parallel  -
> >> DLITTLE_ENDIAN=BYTE_ORDER   -DTEMPLATE_DEFS_INCLUDED  -DHAVE_OCC -
> >> DHAVE_OCC_IGES -DHAVE_OCC_STEP -DHAVE_OCC_STL -DSRCDIR=. -I../util
> -
> >> I../geom -I../init -I../geom/parallel -DUSE_MPI   -Wall -pipe -
> >> pedantic -O2 -DNDEBUG -MT chaman.o -MD -MP -MF .deps/chaman.Tpo -c
> -o
> >>
> >> chaman.o chaman.cc
> >> mv -f .deps/chaman.Tpo .deps/chaman.Po
> >> /bin/sh ../libtool  --tag=CXX   --mode=link /home/fathom/3rdparty/
> >> mpich2/mpich2-1.2.1/gcc/bin/mpicxx  -Wall -pipe -pedantic -O2 -
> >> DNDEBUG  -L/home/fathom/3rdparty/occ/OpenCASCADE6.3.0/gcc/lib  -o
> >> chaman chaman.o libiGeom.la -lm
> >> libtool: link: /home/fathom/3rdparty/mpich2/mpich2-1.2.1/gcc/bin/
> >> mpicxx -Wall -pipe -pedantic -O2 -DNDEBUG -o .libs/chaman chaman.o
> >> -L/
> >> home/fathom/3rdparty/occ/OpenCASCADE6.3.0/gcc/lib
> ./.libs/libiGeom.so
> >> -
> >> lm -Wl,-rpath -Wl,/home/fathom/libs/cgm/cgm-4.0.1/parallel/ 
> >> gcc_optocc/
> >>
> >> lib
> >> ./.libs/libiGeom.so: undefined reference to
> >> `CGMReadParallel::CGMReadParallel(GeometryQueryTool*,
> >> CGMParallelComm*)'
> >> ./.libs/libiGeom.so: undefined reference to
> >> `CGMReadParallel::load_file(char const*, char const*, char const*, 
> 
> >> int
> >>
> >> const*, int)'
> >> collect2: ld returned 1 exit status
> >> make[4]: *** [chaman] Error 1
> >>
> >> I've looked at .libs/libiGeom.so. It does have undefined references
>  
> >> to
> >>
> >> the above routines.   But it also has a dependency on the
> libcgm.so.0
> >>
> >> shared library that exists in the main CGM source directory
> >> (in .libs).  And that shared library has definitions for the
> >> routines.
> >>
> >> --Bob


More information about the cgma-dev mailing list