我在(Windows操作系统)中使用PGI Visual Fortran构建一个由fortran(f90)库和可执行文件组成的项目/解决方案。 f90库链接到netcdf.lib。 f90编译并构建正常,但是当我尝试将其链接到可执行文件时,我得到以下错误:
编译项目...
链接...
错误LNK2019:函数interpnwptools_checkcldliq_中引用的未解析的外部符号nf_ _inq_varid_
错误LNK2001:未解析的外部符号nf__inq varid
错误LNK2019:函数错误中引用的未解析的外部符号nf_ strerror_
错误LNK2019:函数
中未解析的外部符号nf_ get_ att_ real_引用
错误LNK2001:未解析的外部符号nf_ get_ att_ real_
错误LNK2019:函数ncdf_module_openfile_中引用的未解析外部符号nf_ create_
错误LNK2019:函数ncdf_module_openfile_中引用的未解析的外部符号nf_def_dim_
。
。
。
和另外一堆nf_未解决的符号。我认为netcdf库没有正确链接。有人可以帮忙吗?我正在使用的项目需要netcdf 3.6.0-p1,我使用MS VStudio 2003自行构建。我也尝试使用gfortran和eclipse构建项目,但是具有相同的链接问题。我之前从未使用过netcdf或fortran ......有什么建议吗?
答案 0 :(得分:1)
您的怀疑是正确的 - NetCDF库未正确链接。假设它已正确构建,您需要告诉Visual Fortran在哪里查找库。我没有做任何PGI-VF工作,但看起来您可以编辑项目的属性页。查找链接器的设置选项,您应该能够添加链接器将搜索必需库的目录。您可能还需要在链接器输入选项中将NetCDF库本身指定为其他依赖项。
答案 1 :(得分:0)
我怀疑问题是使用/为不同编译器构建的Fortran库使用不同的调用约定(名称修改,参数传递等),因此彼此不兼容(在大多数情况下)。尝试查看您的netcdf库是否具有正确的下载和编译设置。