underlinked libnetcdf_c++4.so.1: undefined symbol: nc_*
sebastic opened this issue · comments
Bas Couwenberg commented
As reported by Andreas Beckmann in Debian Bug #949828:
libnetcdf_c++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.