[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