[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netCDF #PUN-322109]: nc-config issue when installing both shared and static libraries
- Subject: [netCDF #PUN-322109]: nc-config issue when installing both shared and static libraries
- Date: Fri, 12 Jul 2013 14:03:18 -0600
Hi Davide,
> We've installed netcdf in Yellowstone with both shared and static
> libraries. When querying nc-config for the libraries, one gets what follows:
>
> $ nc-config --libs
> -L/glade/apps/opt/netcdf/4.2/gnu/4.7.2/lib -lnetcdf
>
>
> Which is perfectly fine for an user compiling programs against the
> shared library (our RPATH takes care of the HDF5 dependency). However,
> if the user is compiling statically, this output is incomplete: it let
> them resolve the static archive which we installed in the same
> directory, but it does not let them resolve the HDF5 dependencies.
>
> I believe a --static-libs or something of that flavor should be added to
> nc-config to cover this use case, but maybe there is already a way.
> Please advice.
We distribute recent versions of the netCDF C and Fortran libraries
with support for "pkg-config", which is a general version of
package-specific scripts like nc-config and nf-config that outputs
information for shared libraries by default, but can optionally output
library information suitable for static linking.
You would use pkg-config much like nc-config, to help compile and link
an application, for example:
$ export PKG_CONFIG_PATH=/opt/lib/pkgconfig
$ gcc -o test test.c $(pkg-config --libs --cflags netcdf)
Note: "cflags" here means "compiler flags" not "C flags", so you could
use the same command for gfortran as gcc:
$ gfortran -o test test.c $(pkg-config --libs --cflags netcdf-fortran)
You may want to check if you have the pkg-config command installed and
look at the documentation to make sure it supports the --static
option.
Here's examples of the output of pkg-config with and without --static
on my platform, resulting from a standard "sudo make install":
$ pkg-config --cflags --libs netcdf
-I/usr/local/include -L/usr/local/lib -L/machine/russ/installs/hdf5_1811/lib
-L/opt/lib -lnetcdf -lhdf5_hl -lhdf5 -lm -lz -lcurl
$ pkg-config --static --cflags --libs netcdf
-I/usr/local/include -L/usr/local/lib -L/machine/russ/installs/hdf5_1811/lib
-L/opt/lib -lnetcdf -lhdf5_hl -lhdf5 -lm -lz -lcurl
you have mail in /var/spool/mail/russ
$ pkg-config --cflags --libs netcdf-fortran
-I/usr/local/include -L/usr/local/lib -lnetcdff
$ pkg-config --static --cflags --libs netcdf-fortran
-I/usr/local/include -L/usr/local/lib -L/machine/russ/installs/hdf5_1811/lib
-L/opt/lib -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lm -lz -lcurl
--Russ
> Regards,
> Davide Del Vento,
> NCAR Computational & Information Services Laboratory
> Consulting Services Software Engineer
> http://www2.cisl.ucar.edu/uss/csg/
> SEA Chair http://sea.ucar.edu/
>
>
Russ Rew UCAR Unidata Program
address@hidden http://www.unidata.ucar.edu
Ticket Details
===================
Ticket ID: PUN-322109
Department: Support netCDF
Priority: Normal
Status: Closed