在windows PGI Visual Fortran上绑定netcdf.lib时出现问题

在windows PGI Visual Fortran上绑定netcdf.lib时出现问题,fortran,netcdf,pgi,Fortran,Netcdf,Pgi,我正在使用PGI Visual Fortran in(Windows操作系统)构建一个由Fortran(f90)库和可执行文件组成的项目/解决方案。f90库链接到netcdf.lib。f90编译和构建正常,但当我尝试将其链接到可执行文件时,会出现以下错误: 正在编译项目… 链接… 错误LNK2019:函数interpnwptools\u checkcldliq\ubr> 错误LNK2001:未解析的外部符号nf__inqvarid 错误LNK2019:函数错误中引用了未解析的外部符号nf_uSt

我正在使用PGI Visual Fortran in(Windows操作系统)构建一个由Fortran(f90)库和可执行文件组成的项目/解决方案。f90库链接到netcdf.lib。f90编译和构建正常,但当我尝试将其链接到可执行文件时,会出现以下错误:

正在编译项目…
链接…
错误LNK2019:函数interpnwptools\u checkcldliq\ubr> 错误LNK2001:未解析的外部符号nf__inqvarid
错误LNK2019:函数错误中引用了未解析的外部符号nf_uStrerror_uu 错误LNK2019:函数中引用了未解析的外部符号nf_uuGet_uuATT_uuReal_uuuuuuu
错误LNK2001:未解析的外部符号nf_uuGet_uATT_uuReal\ubr> 错误LNK2019:未解析的外部符号nf_uu创建uu在函数ncdf_模块u openfile_u中引用
错误LNK2019:函数ncdf_模块_openfile_中引用了未解析的外部符号nf_def_dim_ .
.
.

还有一大堆其他的未解决的符号。我认为netcdf库没有得到正确的链接。有人能帮忙吗?我正在使用的项目需要netcdf3.6.0-p1,这是我自己使用msvstudio2003构建的。我还尝试使用gfortran和eclipse构建项目,但存在相同的链接问题。我以前从未使用过netcdf或fortran。。。有什么建议吗?

您的怀疑是正确的-NetCDF库没有正确链接。假设它是正确构建的,您需要告诉VisualFortran在哪里可以找到库。我不做任何PGI-VF工作,但看起来您可以编辑项目的属性页。查找链接器的设置选项,您应该能够添加链接器将搜索所需库的目录。您可能还需要将NetCDF库本身指定为链接器输入选项中的附加依赖项。

我怀疑问题在于,使用/为不同编译器构建的Fortran库使用不同的调用约定(名称混乱、参数传递等),因此彼此不兼容(在大多数情况下)。尝试查看您的netcdf库的下载和编译设置是否正确。

谢谢您的回答。我直接从netcdf网站下载了netcdf代码,并使用MSVS2003构建了它。为了构建netcdf库,我使用了netcdf提供的MSVS windows项目,只需更改属性来构建.lib而不是.dll。在PGI-VF中,我已经在链接器属性中指定了netcdf.lib,但它似乎根本没有选择它。会是这样吗?我从未使用过F90。。。。我可以将.lib文件链接到f90吗?谢谢你的帮助!第一件事。验证netCDF库是否包含未解析的符号。