[cgma-dev] Link error building parallel CGM with OCC
Robert Smith
smithrm at mcs.anl.gov
Fri Oct 8 16:20:49 CDT 2010
Same definition. I also verified top_builddir. It's usually defined
as ".." but sometimes as "." or "../..".
--Bob
On Oct 8, 2010, at 3:51 PM, Hong-Jun Kim wrote:
> 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