[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[netCDF #VTI-484586]: configure for netcdf can't find hdf5dll and exits

Hi George,

Russ and I were discussing this, and I thought Iâd jump in real quick with
a few things Iâve observed, in pursuit of getting this sorted out.


   Drop LIBS altogether. Use of LIBS is unnecessary and will only muddy the
   waters. The whole point of configure is to find the appropriate
   libraries and build the argument/variable list which is passed to the
   compiler and linker via the generated Makefiles.

   You appear to be attempting to link against libraries (libhdf5,
   libhdf5_hl, etc) that exist within the directory where it was built. I
   conclude this based on the .libs/ present in your LDFLAGS. The files in
   .libs/ are managed by libtool, and there is a level of redirection going
   on there that makes it tricky to link against them in some cases. You will
   be better off by installing these libraries either in a machine-wide
   location, or in a directory you have access to. You can specify this with
   the --prefix argument when building these libraries.

   We appear to be thrashing around between different environmental
   variables configurations, different targets (shared vs. static), and
   different ways of specifying the environmental variables. This only
   introduces an additional level of confusion and misdirection, making this
   process more complicated. Once we get one build type working, we will be
   able to get them all working. Russ has already specified the standard way
   to invoke configure, and I can see from your config.log files that the
   environmental variables are being specified (config.log line ~4500, or
   search for *Cache variables*).

   You asked why configure is looking for a dll. If you examine configure.ac,
   you will see on line 859 that we specify a list of possible library names,
   hdf5 and hdf5dll. The configure script is generated from configure.ac.
   In the most recent config.log file you provided, you will see that both
   of these are checked for, and the system linker returns an error when it
   cannot find the library libhdf5 (config.log, line 4357) or hdf5dll (
   config.log line 3475). So, it is not a problem at all that it is failing
   to find a dll file even though you are on linux. Thatâs just how autoconf
   works. Autoconf is complicated, to be sure; the documentation at
   http://www.gnu.org/software/autoconf/autoconf.html can provide
   additional info.

Possible Issues

Ok, on to my thoughts about possible issues. First, could there be a
problem with our autoconf configuration? Unlikely, as it works just fine
our linux test machines; it is checked automatically on various flavors of
linux, including centos, ubuntu, fedora, and debian.

Could linking against libraries in build directories also be causing an
issue? Absolutely, libtool is complicated, as noted above. make install
does a lot more than just copy files around. It also configures rpath and
modifies dependency locations, in some cases.

Note that if you proceed with this, and manage to get it working, thereâs a
good chance make check may fail unless you modify your system
LD_LIBRARY_PATH. If this becomes a problem, Google should be able to direct
you to the appropriate libtool documentation.

Confirmed Issue

Taking a second look at your config.log file, it appears that configure is
actually finding libhdf5 just fine. It is failing to find libhdf5_hl. Make
sure that you build libhdf5 with the high-level library enabled. You would
do this by passing the --enable-hl argument to configure when configuring
hdf5. So, this is absolutely an issue.
Moving Forward

At this point, I recommend picking a configuration (shared vs. static) and
process and sticking with it, until we get that working. From that solid
base, you can then branch out into tweaking things. Rebuild libhdf5 with
--enable-hl, and see if that fixes the netcdf configure problem.

I hope this helps, have a great weekend!


address@hidden> wrote:

New Client Reply: configure for netcdf can't find hdf5dll and exits
> Hi Russ,
> Followed your advice on prepending the flags to ./configure.
> Some new issues arise - please advise on next steps to having a netcdf4
> build.
> In the attachments:
> The command I ran for config is at the bottom of the envars.new attachment.
> Config.log shows an exit on "undefined reference to _doprnt"
> Configme-4-4.log is still complaining about hdf5
> Best,
> George
> Ticket Details
> ===================
> Ticket ID: VTI-484586
> Department: Support netCDF
> Priority: Normal
> Status: Open
> Link:
> https://www.unidata.ucar.edu/esupport/staff/index.php?_m=tickets&_a=viewticket&ticketid=25679


Ticket Details
Ticket ID: VTI-484586
Department: Support netCDF
Priority: Normal
Status: Closed

NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.