我正在尝试编译一个化学发射预处理器程序。
这是编译过程的官方教程。
我已经上传了原始源代码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的特定行。
汇编仍然出错。
答案 0 :(得分:3)
问题是gcc 4.9默认生成dwarf-4,但是你还没有更新到最近版本的链接器,它也能理解dwarf-4。
一个简单的解决方法是-gdwarf-2编译器选项。