This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Hi David, > I'm back again with another question. We are trying to link the netcdf > lib with other object files that we have for this one project. The only > problem is that we mix in FORTRAN with C functions. I think because of > that it requires that the main program file to be linked as a .f file > and not a .o file. Therefore I can not just use > f77 -c -fno-second-underscore -I/home/trangd/netcdf/include test.f > f77 -o test test.o -L/home/trangd/netcdf/lib -lnetcdff -lnetcdf > > I know I created a library that makes a .a file and links my C functions > that way. > And I saw that in the lib folder there are .a files. Can I link the > netCDF libraries that way? > > We are doing something like this: > > If our FORTRAN file we have this: > SUBROUTINE HANDLE_ERR(ERRCODE) > IMPLICIT NONE > c INCLUDE 'netcdf.inc' > INTEGER ERRCODE > > call nc_strerror(ERRCODE) > STOP 2 > END > > And this is how our makefile looks like: > > f77 -I. -O3 -o bin/wind_ret source_code/wind_ret.f sort.o genws.o \ > windmodels.o twoscale.o degree_trig_funcs.o \ > read_header.o read_header_inimglincol.o \ > get_llpolycoef.o read_latlongpoly.o > get_polytransval.o fio_v4.0/fio_lib.a \ > > /home/trangd/GDYNAMICS_GP70/netcdf/lib/libnetcdf.a > /home/trangd/GDYNAMICS_GP70/netcdf/lib/libnetcdff.a > /tmp/ccha4udd.o: In function `handle_err__': > wind_ret.f:(.text+0x4207): undefined reference to `nc_strerror__' > collect2: ld returned 1 exit status > make: *** [wind_ret] Error 1 > > I hope we can find a solution to this. It looks like you have the libraries in the wrong order, because the netCDF Fortran library, libnetcdff.a, contains functions that call the netCDF C library, libnetcdf.a. If you just reverse the order of those two libraries, it should work better. --Russ Russ Rew UCAR Unidata Program address@hidden http://www.unidata.ucar.edu Ticket Details =================== Ticket ID: SPU-502397 Department: Support netCDF Priority: Normal Status: Closed