NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Re: [netcdfgroup] Linker option ordering when linking to HDF5

stephen.pascoe@xxxxxxxxxx wrote:
I've noticed that when building statically linked executables the order
of the link options is important.  For instance:
$ g++ -static -L... -I... foo.c -lnetcdf -lhdf5 -lhdf5_hl -lm -lz -o foo
/usr/local/lib/libhdf5_hl.a(H5LT.o): In function `H5LT_dtype_to_text':
H5LT.c:(.text+0x26e4): undefined reference to `H5Tget_cset'
H5LT.c:(.text+0x290b): undefined reference to `H5Tset_cset'
H5LT.c:(.text+0x2a55): undefined reference to `H5Tset_cset'
H5LT.c:(.text+0x2c4f): undefined reference to `H5Tget_tag'
/usr/local/QC/lib/libhdf5_hl.a(H5LTparse.o): In function `H5LTyyparse':
H5LTparse.c:(.text+0xe85): undefined reference to `H5Tset_tag'
H5LTparse.c:(.text+0x1077): undefined reference to `H5Tset_cset'
collect2: ld returned 1 exit status

However this works:
$ g++ -static -L... -I... foo.c -lnetcdf -lhdf5_hl -lhdf5 -lm -lz -o foo

g++ -static -L... -I... foo.c -Wl,--start-group -lnetcdf -lhdf5 -lhdf5_hl -lm 
-lz -Wl,--end-group -o foo
may work too (not tested). See the manpage of 'ld'.
--start-group/--end-group is what you're after.
Hope that helps.
Cédric



  • 2010 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: