[FLASH-USERS] Solved: Undefined symbol in FLASH 3.0beta

Cole Miller miller at astro.umd.edu
Tue Nov 6 15:36:20 EST 2007


Hi all,

I'm writing this so there exists a specific record of the solution
to the problem I ran into, which is that I was getting runtime errors
such as
> flash3: symbol lookup error: flash3: undefined symbol: H5P_CLS_DATASET_XFER_g

or H5P_CLS_DATASET_CREATE_g in the case of FLASH2.5.  Dan Sheeler
suggested a couple of things, and the one that worked in my case
is an explicit setting of LD_LIBRARY_PATH to point to the compile
time hdf5 library:
    setenv LD_LIBRARY_PATH /astromake/opt/hdf5/1.6.6/lib:$LD_LIBRARY_PATH

A way of testing this that Dan suggested is to type "ldd flash3" in
the object/ directory.  With LD_LIBRARY_PATH defined I get
         linux-gate.so.1 =>  (0xffffe000)
         libsvml.so => /astromake/opt/intel/cc/9.1.043/lib/libsvml.so 
(0xb7f8c000)
         libhdf5.so.0 => /astromake/opt/hdf5/1.6.6/lib/libhdf5.so.0 
(0xb7e85000)
         libz.so.1 => /lib/libz.so.1 (0xb7e5a000)
         libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7e49000)
         librt.so.1 => /lib/tls/librt.so.1 (0xb7e35000)
         libm.so.6 => /lib/tls/libm.so.6 (0xb7e12000)
         libc.so.6 => /lib/tls/libc.so.6 (0xb7cf3000)
         libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7cea000)
         libdl.so.2 => /lib/libdl.so.2 (0xb7ce6000)
         libirc.so => /astromake/opt/intel/cc/9.1.043/lib/libirc.so 
(0xb7ca5000)
         libimf.so => /astromake/opt/intel/cc/9.1.043/lib/libimf.so 
(0xb7a67000)
         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fec000)

and without I get

         linux-gate.so.1 =>  (0xffffe000)
         libsvml.so => /astromake/opt/intel/cc/9.1.043/lib/libsvml.so 
(0xb7f8c000)
         libhdf5.so.0 => /usr/lib/libhdf5.so.0 (0xb7e9c000)
         libz.so.1 => /lib/libz.so.1 (0xb7e89000)
         libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7e78000)
         librt.so.1 => /lib/tls/librt.so.1 (0xb7e64000)
         libm.so.6 => /lib/tls/libm.so.6 (0xb7e41000)
         libc.so.6 => /lib/tls/libc.so.6 (0xb7d22000)
         libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7d19000)
         libdl.so.2 => /lib/libdl.so.2 (0xb7d15000)
         libirc.so => /astromake/opt/intel/cc/9.1.043/lib/libirc.so 
(0xb7cd4000)
         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fec000)

The differences are (1) libhdf5.so.0 is defined differently when
LD_LIBRARY_PATH points directly to the hdf5 library, and (2) when
this is defined we have an extra line, related to libimf.so.

Thanks to Dan for his help!

Cole



More information about the flash-users mailing list