Hi David, For good measure, I sent an e-mail to the Exodus developers. The cmake is calling the libraries in the correct order.
In addition, when I am using the Python API, I modified the order that the libraries are loaded to be consistent with how they were loaded during compilation. I am still receiving the same error as: OSError: ~/Programs/exodusii/lib/libexodus.so: undefined symbol: H5Tset_tag Thank you, Jesse On Wed, Oct 8, 2014 at 4:45 PM, Jesse Johns <[email protected]> wrote: > Hi David, > > The compilation of the netcdf is correct compared to the link you shared: > > "-L/home/jesse/Programs/hdf5/lib > /home/jesse/Programs/hdf5/lib/libhdf5_hl.so > /home/jesse/Programs/hdf5/lib/libhdf5.so" > > I am not use how to get the ExodusII compilation, since it uses cmake, of > which I am fairly ignorant. However, it would surprise me, since my > compilation succeeds unlike in that post - it's just when I am accessing > the shared ExodusII library. In addition, with the cmake, there haven't > been errors like this previously. > > Jesse > > > > On Wed, Oct 8, 2014 at 3:40 PM, David Brooks <[email protected]> > wrote: > >> Hmm, the post at >> http://www.unidata.ucar.edu/mailing_lists/archives/netcdfgroup/2010/msg00389.html >> suggests that the reason may be the link order of HDF5 libraries when >> either libnetcdf or libexodus was built. >> >> >> Regards, >> Dave >> >> >> On 9/10/14 9:00 am, Jesse Johns wrote: >> >> Hello Mark: >> >> Thank you for the advice. >> >> There are actually a few approaches that I took. First, with the Python >> API that comes with the ExodusII library, there are some options to load >> the libraries, so I included the following: >> >> EXODUS_PATH = findLibExoPath() >> HDF_PATH = "/home/jesse/Programs/hdf5/lib" >> >> NETCDF_SO = "/home/jesse/Programs/netcdf/lib" + "/libnetcdf.so" >> EXODUS_SO = EXODUS_PATH + "libexodus.so" >> HDF_SO = HDF_PATH + "/libhdf5.so" >> HDF_HL_SO = HDF_PATH + "/libhdf5_hl.so" >> >> HDF5_LIB = cdll.LoadLibrary(HDF_SO) >> HDF5_HL_LIB = cdll.LoadLibrary(HDF_HL_SO) >> NETCDF_LIB = cdll.LoadLibrary(NETCDF_SO) >> EXODUS_LIB = cdll.LoadLibrary(EXODUS_SO) >> >> In using the library, I get the same error. I went ahead and added an >> environmental variable in bashrc: >> >> export LD_LIBRARY_PATH=/home/jesse/Programs/hdf5/lib:$LD_LIBRARY_PATH >> >> Tried calling using API, same error (this should be equivalent to what >> you suggested to do). >> >> Lastly, I just recompiled everything with the environmental variable set >> explicitly instead of just calling them with compiler flags. Still, I get >> the same error when using the API. >> >> The traceback goes to the API when I am calling the Exodus shared >> library: >> >> EXODUS_LIB = cdll.LoadLibrary(EXODUS_SO) >> File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary >> return self._dlltype(name) >> File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__ >> self._handle = _dlopen(self._name, mode) >> OSError: /home/jesse/Programs/exodus/lib/libexodus.so: undefined symbol: >> H5Tset_tag >> >> So, I do think you're right that the HDF5 library is not being loaded >> correctly. There are some conflicts if I were to install the libraries in >> the default library paths, but it might be worth writing a module script >> that shuffles all that around... I'm very much open to every suggestion, >> however. I've been working on this for a while. >> >> Thank you, >> >> Jesse >> >> >> On Wed, Oct 8, 2014 at 2:11 PM, Miller, Mark C. <[email protected]> >> wrote: >> >>> Your forms post indicates you downloaded and installed hdf5 yourself. >>> And, from the looks of it you are using shared librarys (.so files). >>> >>> So, I am guessing that have compiled some executable that uses >>> libexodus.so and are now hitting this error when running that executable. >>> Is that right? >>> >>> I am guessing you need to set LD_LIBRARY_PATH env. variable to tell >>> the loader where to find the libhdf5.so file you installed and then built >>> exodus against. >>> >>> If you are on Linux and your app was named 'foo' and you had installed >>> HDF5 to /homes/gorfo/my_installs/hdf5, then try a command like⦠>>> >>> env LD_LIBRARY_PATH=/homes/gorfo/my_installs/hdf5/lib ./foo >>> >>> and see if that (or some variation thereof) doesn't work >>> >>> Mark >>> >>> >>> From: Jesse Johns <[email protected]> >>> Reply-To: HDF Users Discussion List <[email protected]> >>> Date: Wednesday, October 8, 2014 10:54 AM >>> To: "[email protected]" <[email protected]> >>> Subject: [Hdf-forum] HDF5 compilation with ExodusII >>> >>> Hello, >>> >>> I am having some problems with getting a compilation of the ExodusII >>> finite-element libraries working correctly. The forum post that I have >>> here: >>> >>> http://forums.linuxmint.com/viewtopic.php?f=47&t=178562 >>> >>> Will be explain things in some detail. The main issue is the follow >>> error that I get: >>> >>> OSError: ~/Programs/exodusii/lib/libexodus.so: undefined symbol: >>> H5Tset_tag >>> >>> I am not sure how to progress further. >>> >>> Thank you, >>> >>> Jesse >>> >>> >>> _______________________________________________ >>> Hdf-forum is for HDF software users discussion. >>> [email protected] >>> >>> http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org >>> Twitter: https://twitter.com/hdf5 >>> >> >> >> >> _______________________________________________ >> Hdf-forum is for HDF software users >> [email protected]http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org >> Twitter: https://twitter.com/hdf5 >> >> >> >> _______________________________________________ >> Hdf-forum is for HDF software users discussion. >> [email protected] >> >> http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org >> Twitter: https://twitter.com/hdf5 >> > >
_______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org Twitter: https://twitter.com/hdf5
