编译与 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_emiss 的 Makefile 中更改某些内容以成功编译吗?
如有任何建议,我们将不胜感激!
-------------------------------- 2016-9-10 添加 ------ ------------------------
我将 -gdwarf-2
开关添加到 Makefile 的特定行。
编译还是出错
问题是 gcc 4.9 默认生成 dwarf-4,但您还没有更新到也能理解 dwarf-4 的最新版本的链接器。
一个简单的解决方法是 -gdwarf-2 编译器选项。
我正在尝试编译一个程序,它是一个化学排放预处理器。
这是其编译过程的官方教程
原源码我已经上传了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_emiss 的 Makefile 中更改某些内容以成功编译吗?
如有任何建议,我们将不胜感激!
-------------------------------- 2016-9-10 添加 ------ ------------------------
我将 -gdwarf-2
开关添加到 Makefile 的特定行。
编译还是出错
问题是 gcc 4.9 默认生成 dwarf-4,但您还没有更新到也能理解 dwarf-4 的最新版本的链接器。
一个简单的解决方法是 -gdwarf-2 编译器选项。