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.
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
netcdfgroup
archives: