Unidata / netcdf-cxx4

Official GitHub repository for netCDF-C++ libraries and utilities.
Other
126 stars 49 forks source link

underlinked libnetcdf_c++4.so.1: undefined symbol: nc_* #86

Open sebastic opened 4 years ago

sebastic commented 4 years ago

As reported by Andreas Beckmann in Debian Bug #949828:

libnetcdfc++4.so.1 uses a bunch of nc* symbols, but is not linked against any netcdf library:

ldd /usr/lib/x86_64-linux-gnu/libnetcdf_c++4.so.1
        linux-vdso.so.1 (0x00007ffe6adc1000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fed279c3000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fed27803000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fed277e9000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fed276a4000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fed27bf5000)

While -lnetcdf is added in LDFLAGS, the library is not added to the NEEDED section:

$ objdump -x /usr/lib/x86_64-linux-gnu/libnetcdf_c++4.so.1 | grep NEEDED
  NEEDED               libstdc++.so.6
  NEEDED               libc.so.6
  NEEDED               libgcc_s.so.1

Adding -lnetcdf to CXXFLAGS fixes the issue.