[Users] linking error Wave Toy Demo

Thomas Radke tradke at aei.mpg.de
Thu Jan 4 09:15:12 CST 2007


Tijmen wrote:
> Hello,
> 
> I am trying to compile the MPI Wave Toy Demo from
> http://www.cactuscode.org/WaveToyDemo/ on a cluster of workstations
> that has MPI/LAM installed. Everything compiles perfectly, but when
> its linked, I get the following error:
> 
> Creating cactus_WaveDemo in /home/nw/tpcollig/Work/Cactus/exe from
> CactusBase/Boundary CactusBase/CartGrid3D CactusBase/CoordBase
> CactusConnect/HTTPD CactusConnect/HTTPDExtra CactusWave/IDScalarWaveC
> CactusBase/IOASCII CactusBase/IOBasic CactusIO/IOJpeg
> CactusBase/IOUtil CactusPUGHIO/IsoSurfacer CactusBase/LocalReduce
> CactusPUGH/PUGH CactusPUGH/PUGHReduce CactusPUGH/PUGHSlab
> CactusConnect/Socket CactusBase/SymBase CactusBase/Time
> CactusWave/WaveBinarySource CactusWave/WaveToyC CactusExternal/jpeg6b
> /opt/lam-mpibase/lib/liblam.a(ltdl.o)(.text+0x3b5): In function `sys_dl_open':
> : undefined reference to `dlopen'
> /opt/lam-mpibase/lib/liblam.a(ltdl.o)(.text+0x3d5): In function `sys_dl_open':
> : undefined reference to `dlerror'
> 
> <snipped some more similar errors>
> 
> collect2: ld returned 1 exit status
> 
> My ~/.cactus/config file contains:
> 
> MPI = LAM
> LAM_DIR = /opt/lam-mpibase

It's your LAM MPI library which itself requires libdl.

Cactus tries to determine what other libraries LAM depends on by looking 
into $LAM_DIR/include/lam_config.h and checking for the setting of 
WRAPPER_EXTRA_LIBS. If the libdl library isn't mentioned there, Cactus 
doesn't include it in the liblist.

You can either fix the LAM config header by adding '-ldl' to 
WRAPPER_EXTRA_LIBS or - if you aren't allowed to modify your LAM 
installation - tell Cactus explicitely your MPI settings, eg.

   MPI          = CUSTOM
   MPI_LIB_DIRS = $LAM_DIR/lib
   MPI_INC_DIRS = $LAM_DIR/include
   MPI_LIBS     = 'mpi lam pthread util dl'

-- 
Cheers, Thomas.


More information about the Users mailing list