[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[netCDF #CBO-601796]: Unresolved externals



> Hi,
> I am trying to use 4.0 with Compaq Visual Fortran.
> I am getting the following errors
> LINK : warning LNK4098: defaultlib "libc.lib" conflicts with use of other 
> libs; use /NODEFAULTLIB:library
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF_INQ_LIBVERS@8<mailto:_NF_INQ_LIBVERS@8>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF_INQ_LIBVERS@8<mailto:_NF_INQ_LIBVERS@8>
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF_STRERROR@12<mailto:_NF_STRERROR@12>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF_STRERROR@12<mailto:_NF_STRERROR@12>
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF_INQ_BASE_PE@8<mailto:_NF_INQ_BASE_PE@8>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF_INQ_BASE_PE@8<mailto:_NF_INQ_BASE_PE@8>
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF_SET_BASE_PE@8<mailto:_NF_SET_BASE_PE@8>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF_SET_BASE_PE@8<mailto:_NF_SET_BASE_PE@8>
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF_CREATE@16<mailto:_NF_CREATE@16>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF_CREATE@16<mailto:_NF_CREATE@16>
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF__CREATE@24<mailto:_NF__CREATE@24>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF__CREATE@24<mailto:_NF__CREATE@24>
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF__CREATE_MP@28<mailto:_NF__CREATE_MP@28>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF__CREATE_MP@28<mailto:_NF__CREATE_MP@28>
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF__OPEN@20<mailto:_NF__OPEN@20>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF__OPEN@20<mailto:_NF__OPEN@20>
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF_OPEN@16<mailto:_NF_OPEN@16>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF_OPEN@16<mailto:_NF_OPEN@16>
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF__OPEN_MP@24<mailto:_NF__OPEN_MP@24>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF__OPEN_MP@24<mailto:_NF__OPEN_MP@24>
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF_SET_FILL@12<mailto:_NF_SET_FILL@12>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF_SET_FILL@12<mailto:_NF_SET_FILL@12>
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF_REDEF@4<mailto:_NF_REDEF@4>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF_REDEF@4<mailto:_NF_REDEF@4>
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF_ENDDEF@4<mailto:_NF_ENDDEF@4>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF_ENDDEF@4<mailto:_NF_ENDDEF@4>
> NETCDF90Ver4.lib(netcdf4.obj) : error LNK2001: unresolved external symbol 
> _NF__ENDDEF@20<mailto:_NF__ENDDEF@20>
> netcdf90.LIB(netcdf.obj) : error LNK2001: unresolved external symbol 
> _NF__ENDDEF@20<mailto:_NF__ENDDEF@20>
> 
> And some more.
> 
> Can you please provide me some clue as why this is happening?
> I created netcdf.mod from f90 code available in 4.0 zip file.
> I am linking with lib files available in 4.0.
> 
> Thanks
> Venkat
> 
> _

Howdy Venkat!

This is happening because different fortran compilers use different name 
mangling schemes, and the proper scheme for your fortran compiler has to be set 
in the C library build.

On unix platforms, this is all handled easily by the configure script. But on 
windows, everything has to be hardwired into your development environment.

So the best way to proceed is to build the C library in your development 
environment (visual studio I assume) and then modify the preprocessor flag 
pgiFortran, and make it f2cFortran. Then the F77 API will appear in the DLL, 
and your F90 code can all it.

We hope to have better windows support for the 4.2 release, but it is something 
we have to throw resources at every few years to bring it up to date with the 
rest of the programming world. Sorry, but we are a very small project, with 
only one full-time programmer, and it is hard to find time to support every 
platform.

Thanks,

Ed

Ticket Details
===================
Ticket ID: CBO-601796
Department: Support netCDF
Priority: Critical
Status: Closed