编译与netcdf

时间:2016-09-08 09:01:33

标签: gcc fortran gfortran netcdf dwarf

我正在尝试编译一个化学发射预处理器程序。

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

enter image description here

我已经上传了原始源代码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:找到矮人版本'4',此阅读器只处理版本2信息。

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

我是否可以在 megan_bio_emiss Makefile 中进行更改以成功编译?

任何建议都将不胜感激!

-------------------------------- 2016-9-10 ADD --------- -----------------------

我将-gdwarf-2 swith添加到Makefile的特定行。 enter image description here

汇编仍然出错。

enter image description here

1 个答案:

答案 0 :(得分:3)

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

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