编译与 netcdf 关联的程序时出现 Dwarf 版本错误

Error with Dwarf version when compile program associated with netcdf

我正在尝试编译一个程序,它是一个化学排放预处理器。

这是其编译过程的官方教程



原源码我已经上传了here.

通过预定义netcdf_dir,源代码应该可以很好地编译。

但是当我使用 ./make_util megan_bio_emiss 时,错误显示如下:

=========================================================================
Using gfortran fortran compiler
=============================================================================
=============================================================================
netcdf top level directory = /disk2/hyf/lib/netcdf
=============================================================================
gfortran -g -ffree-line-length-none  -c -I/disk2/hyf/lib/netcdf/include misc_definitions_module.f90
gfortran -g -ffree-line-length-none  -c -I/disk2/hyf/lib/netcdf/include constants_module.f90
gfortran -g -ffree-line-length-none  -c -I/disk2/hyf/lib/netcdf/include bio_types.f90 
......
...... 
......

gfortran -o megan_bio_emiss misc_definitions_module.o constants_module.o   bio_types.o area_mapper.o bio_emiss.o -L/disk2/hyf/lib/netcdf/lib -lnetcdf -lnetcdff 
/usr/bin/ld: Dwarf Error: found dwarf version '4', this reader only handles version 2 information.
/disk2/hyf/lib/netcdf/lib/libnetcdff.a(fort-attio.o): In function `nf_put_att_text_':
fort-attio.c:(.text+0x11c): undefined reference to `nc_put_att_text'
......

源代码中的某些东西(dwarf?)似乎与我的系统不兼容。

usr/bin/ld: Dwarf Error: found dwarf version '4', this reader only handles version 2 information.

顺便说一句,我使用的操作系统是CentOS 5.0并且我已经安装了netCDF-4.1.3(C和Fortran二进制代码结合的最新版本)和GCC-4.9.2

我可以在 megan_bio_emissMakefile 中更改某些内容以成功编译吗?

如有任何建议,我们将不胜感激!

-------------------------------- 2016-9-10 添加 ------ ------------------------

我将 -gdwarf-2 开关添加到 Makefile 的特定行。

编译还是出错

问题是 gcc 4.9 默认生成 dwarf-4,但您还没有更新到也能理解 dwarf-4 的最新版本的链接器。

一个简单的解决方法是 -gdwarf-2 编译器选项。