请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9482|回复: 6

WRF安装编译失败请教高手

[复制链接]

新浪微博达人勋

发表于 2021-1-24 13:03:26 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
WRF久闻大名但一直没用过,最近研究台风需要但安装就出现了问题编译一直失败,请教高手可否帮忙解决?非常感谢!主要错误应该是有一些未定义的引用吧,最后不能生产可执行文件,摘录部分错误如下:

make[2]: 离开目录“/home/model/wrf3.9/WRFV3/frame”
make[2]: 进入目录“/home/model/wrf3.9/WRFV3/external/io_netcdf”
x=`echo "time gfortran -w -ffree-form -ffree-line-length-none -fconvert=big-endian -frecord-marker=4    " | awk '{print $1}'` ; export x ; \
if [ $x = "gfortran" ] ; then \
           echo removing external declaration of iargc for gfortran ; \
   /lib/cpp -P -nostdinc -P -traditional-cpp -I/usr/local/netcdf/include -I../ioapi_share diffwrf.F90 | sed '/integer *, *external.*iargc/d' > diffwrf.f ;\
        else \
   /lib/cpp -P -nostdinc -P -traditional-cpp -I/usr/local/netcdf/include -I../ioapi_share diffwrf.F90 > diffwrf.f ; \
        fi
time gfortran -w -ffree-form -ffree-line-length-none -fconvert=big-endian -frecord-marker=4     -c  -I/usr/local/netcdf/include -I../ioapi_share diffwrf.f
0.19user 0.03system 0:00.26elapsed 88%CPU (0avgtext+0avgdata 18868maxresident)k
64inputs+296outputs (0major+7700minor)pagefaults 0swaps
diffwrf io_netcdf is being built now.
wrf_io.o:在函数‘__ext_ncd_support_routines_MOD_netcdf_err.part.0’中:
wrf_io.f:(.text+0x1c):对‘nf_strerror_’未定义的引用
wrf_io.o:在函数‘__ext_ncd_support_routines_MOD_gettimeindex’中:
wrf_io.f:(.text+0x68ca):对‘nf_put_vara_text_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_var_td_char_’中:
wrf_io.f:(.text+0xe7ff):对‘nf_inq_varid_’未定义的引用
wrf_io.f:(.text+0xe854):对‘nf_inq_var_’未定义的引用
wrf_io.f:(.text+0xef08):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0xefd4):对‘nf_get_vara_text_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_var_td_logical_’中:
wrf_io.f:(.text+0xf976):对‘nf_inq_varid_’未定义的引用
wrf_io.f:(.text+0xf9cc):对‘nf_inq_var_’未定义的引用
wrf_io.f:(.text+0x10087):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0x10165):对‘nf_get_vara_int_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_var_td_double_’中:
wrf_io.f:(.text+0x10ca6):对‘nf_inq_varid_’未定义的引用
wrf_io.f:(.text+0x10cfc):对‘nf_inq_var_’未定义的引用
wrf_io.f:(.text+0x113b7):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0x1149b):对‘nf_get_vara_double_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_var_td_integer_’中:
wrf_io.f:(.text+0x11f76):对‘nf_inq_varid_’未定义的引用
wrf_io.f:(.text+0x11fcc):对‘nf_inq_var_’未定义的引用
wrf_io.f:(.text+0x12687):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0x12765):对‘nf_get_vara_int_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_var_td_real_’中:
wrf_io.f:(.text+0x13276):对‘nf_inq_varid_’未定义的引用
wrf_io.f:(.text+0x132cc):对‘nf_inq_var_’未定义的引用
wrf_io.f:(.text+0x13987):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0x13a6b):对‘nf_get_vara_real_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_var_td_char_’中:
wrf_io.f:(.text+0x145fc):对‘nf_put_vara_text_’未定义的引用
wrf_io.f:(.text+0x1504f):对‘nf_def_var_’未定义的引用
wrf_io.f:(.text+0x15259):对‘nf_def_dim_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_var_td_logical_’中:
wrf_io.f:(.text+0x160d5):对‘nf_put_vara_int_’未定义的引用
wrf_io.f:(.text+0x16c24):对‘nf_def_var_’未定义的引用
wrf_io.f:(.text+0x16e2b):对‘nf_def_dim_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_var_td_double_’中:
wrf_io.f:(.text+0x17a3c):对‘nf_put_vara_double_’未定义的引用
wrf_io.f:(.text+0x18637):对‘nf_def_var_’未定义的引用
wrf_io.f:(.text+0x1883e):对‘nf_def_dim_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_var_td_integer_’中:
wrf_io.f:(.text+0x1926c):对‘nf_put_vara_int_’未定义的引用
wrf_io.f:(.text+0x19e67):对‘nf_def_var_’未定义的引用
wrf_io.f:(.text+0x1a06e):对‘nf_def_dim_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_var_td_real_’中:
wrf_io.f:(.text+0x1aa9c):对‘nf_put_vara_real_’未定义的引用
wrf_io.f:(.text+0x1b697):对‘nf_def_var_’未定义的引用
wrf_io.f:(.text+0x1b89e):对‘nf_def_dim_’未定义的引用
wrf_io.o:在函数‘ext_ncd_open_for_read_begin_’中:
wrf_io.f:(.text+0x1c096):对‘nf_open_’未定义的引用
wrf_io.f:(.text+0x1c0cc):对‘nf_inq_varid_’未定义的引用
wrf_io.f:(.text+0x1c120):对‘nf_inq_var_’未定义的引用
wrf_io.f:(.text+0x1c4af):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0x1c742):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0x1c877):对‘nf_get_vara_text_’未定义的引用
wrf_io.f:(.text+0x1c8d1):对‘nf_inq_nvars_’未定义的引用
wrf_io.f:(.text+0x1c964):对‘nf_inq_varname_’未定义的引用
wrf_io.o:在函数‘ext_ncd_open_for_update_’中:
wrf_io.f:(.text+0x1d026):对‘nf_open_’未定义的引用
wrf_io.f:(.text+0x1d05c):对‘nf_inq_varid_’未定义的引用
wrf_io.f:(.text+0x1d0b0):对‘nf_inq_var_’未定义的引用
wrf_io.f:(.text+0x1d43f):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0x1d6d2):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0x1d807):对‘nf_get_vara_text_’未定义的引用
wrf_io.f:(.text+0x1d861):对‘nf_inq_nvars_’未定义的引用
wrf_io.f:(.text+0x1d8f4):对‘nf_inq_varname_’未定义的引用
wrf_io.o:在函数‘ext_ncd_open_for_write_begin_’中:
wrf_io.f:(.text+0x1e1ce):对‘nf_create_’未定义的引用
wrf_io.f:(.text+0x1e255):对‘nf_def_dim_’未定义的引用
wrf_io.f:(.text+0x1e795):对‘nf_def_dim_’未定义的引用
wrf_io.f:(.text+0x1e804):对‘nf_def_var_’未定义的引用
wrf_io.o:在函数‘ext_ncd_open_for_write_commit_’中:
wrf_io.f:(.text+0x1ef79):对‘nf_set_fill_’未定义的引用
wrf_io.f:(.text+0x1f25f):对‘nf_enddef_’未定义的引用
wrf_io.o:在函数‘ext_ncd_ioclose_’中:
wrf_io.f:(.text+0x1f71b):对‘nf_close_’未定义的引用
wrf_io.o:在函数‘ext_ncd_iosync_’中:
wrf_io.f:(.text+0x1fc4c):对‘nf_sync_’未定义的引用
wrf_io.o:在函数‘ext_ncd_redef_’中:
wrf_io.f:(.text+0x2016c):对‘nf_redef_’未定义的引用
wrf_io.o:在函数‘ext_ncd_enddef_’中:
wrf_io.f:(.text+0x2073c):对‘nf_enddef_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_var_ti_real_’中:
wrf_io.f:(.text+0x21680):对‘nf_put_att_real_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_var_ti_double_’中:
wrf_io.f:(.text+0x22110):对‘nf_put_att_double_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_var_ti_integer_’中:
wrf_io.f:(.text+0x22ba0):对‘nf_put_att_int_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_var_ti_logical_’中:
wrf_io.f:(.text+0x2381c):对‘nf_put_att_int_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_var_ti_char_’中:
wrf_io.f:(.text+0x24503):对‘nf_put_att_text_’未定义的引用
wrf_io.f:(.text+0x24ada):对‘nf_put_att_text_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_var_ti_real_’中:
wrf_io.f:(.text+0x250f7):对‘nf_inq_att_’未定义的引用
wrf_io.f:(.text+0x2542b):对‘nf_get_att_real_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_var_ti_double_’中:
wrf_io.f:(.text+0x26267):对‘nf_inq_att_’未定义的引用
wrf_io.f:(.text+0x2659b):对‘nf_get_att_double_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_var_ti_integer_’中:
wrf_io.f:(.text+0x27397):对‘nf_inq_att_’未定义的引用
wrf_io.f:(.text+0x276c7):对‘nf_get_att_int_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_var_ti_logical_’中:
wrf_io.f:(.text+0x284b7):对‘nf_inq_att_’未定义的引用
wrf_io.f:(.text+0x287e7):对‘nf_get_att_int_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_var_ti_char_’中:
wrf_io.f:(.text+0x29490):对‘nf_inq_att_’未定义的引用
wrf_io.f:(.text+0x2950e):对‘nf_get_att_text_’未定义的引用
wrf_io.o:在函数‘ext_ncd_write_field_’中:
wrf_io.f:(.text+0x2c149):对‘nf_def_dim_’未定义的引用
wrf_io.f:(.text+0x2cd13):对‘nf_def_dim_’未定义的引用
wrf_io.f:(.text+0x2cf6c):对‘nf_def_var_’未定义的引用
wrf_io.f:(.text+0x2cfe5):对‘nf_put_att_int_’未定义的引用
wrf_io.f:(.text+0x2d06a):对‘nf_put_att_text_’未定义的引用
wrf_io.o:在函数‘ext_ncd_read_field_’中:
wrf_io.f:(.text+0x2db6c):对‘nf_inq_varid_’未定义的引用
wrf_io.f:(.text+0x2dbcc):对‘nf_inq_var_’未定义的引用
wrf_io.f:(.text+0x2dc0b):对‘nf_get_att_int_’未定义的引用
wrf_io.f:(.text+0x2e85b):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0x2f457):对‘nf_inq_dimname_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_dom_ti_real_’中:
wrf_io.f:(.text+0x30185):对‘nf_inq_att_’未定义的引用
wrf_io.f:(.text+0x30471):对‘nf_get_att_real_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_dom_ti_integer_’中:
wrf_io.f:(.text+0x30ee5):对‘nf_inq_att_’未定义的引用
wrf_io.f:(.text+0x311c2):对‘nf_get_att_int_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_dom_ti_double_’中:
wrf_io.f:(.text+0x31bd6):对‘nf_inq_att_’未定义的引用
wrf_io.f:(.text+0x31ec0):对‘nf_get_att_double_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_dom_ti_logical_’中:
wrf_io.f:(.text+0x328f5):对‘nf_inq_att_’未定义的引用
wrf_io.f:(.text+0x32bd2):对‘nf_get_att_int_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_dom_ti_char_’中:
wrf_io.f:(.text+0x335c8):对‘nf_inq_att_’未定义的引用
wrf_io.f:(.text+0x3361c):对‘nf_get_att_text_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_dom_ti_real_’中:
wrf_io.f:(.text+0x33f42):对‘nf_redef_’未定义的引用
wrf_io.f:(.text+0x33f75):对‘nf_put_att_real_’未定义的引用
wrf_io.f:(.text+0x33f91):对‘nf_enddef_’未定义的引用
wrf_io.f:(.text+0x341b9):对‘nf_put_att_real_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_dom_ti_integer_’中:
wrf_io.f:(.text+0x347a2):对‘nf_redef_’未定义的引用
wrf_io.f:(.text+0x347d5):对‘nf_put_att_int_’未定义的引用
wrf_io.f:(.text+0x347f1):对‘nf_enddef_’未定义的引用
wrf_io.f:(.text+0x34a19):对‘nf_put_att_int_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_dom_ti_double_’中:
wrf_io.f:(.text+0x35002):对‘nf_redef_’未定义的引用
wrf_io.f:(.text+0x35035):对‘nf_put_att_double_’未定义的引用
wrf_io.f:(.text+0x35051):对‘nf_enddef_’未定义的引用
wrf_io.f:(.text+0x35279):对‘nf_put_att_double_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_dom_ti_logical_’中:
wrf_io.f:(.text+0x35863):对‘nf_redef_’未定义的引用
wrf_io.f:(.text+0x35b2f):对‘nf_put_att_int_’未定义的引用
wrf_io.f:(.text+0x35b5c):对‘nf_enddef_’未定义的引用
wrf_io.f:(.text+0x35efc):对‘nf_put_att_int_’未定义的引用
wrf_io.o:在函数‘ext_ncd_put_dom_ti_char_’中:
wrf_io.f:(.text+0x367de):对‘nf_redef_’未定义的引用
wrf_io.f:(.text+0x36820):对‘nf_put_att_text_’未定义的引用
wrf_io.f:(.text+0x3683c):对‘nf_enddef_’未定义的引用
wrf_io.f:(.text+0x36a68):对‘nf_put_att_text_’未定义的引用
wrf_io.o:在函数‘ext_ncd_get_var_info_’中:
wrf_io.f:(.text+0x388b9):对‘nf_inq_varid_’未定义的引用
wrf_io.f:(.text+0x388da):对‘nf_inq_vartype_’未定义的引用
wrf_io.f:(.text+0x3890d):对‘nf_get_att_int_’未定义的引用
wrf_io.f:(.text+0x39257):对‘nf_get_att_text_’未定义的引用
wrf_io.f:(.text+0x3941d):对‘nf_inq_vardimid_’未定义的引用
wrf_io.f:(.text+0x3946a):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0x394c1):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0x394fc):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0x39537):对‘nf_inq_dimlen_’未定义的引用
wrf_io.f:(.text+0x3957b):对‘nf_inq_dimlen_’未定义的引用
wrf_io.o:wrf_io.f:(.text+0x395b8): 跟着更多未定义的参考到 nf_inq_dimlen_
field_routines.o:在函数‘ext_ncd_realfieldio_’中:
field_routines.f:(.text+0x55):对‘nf_put_vara_real_’未定义的引用
field_routines.f:(.text+0x83):对‘nf_get_vara_real_’未定义的引用
field_routines.o:在函数‘ext_ncd_doublefieldio_’中:
field_routines.f:(.text+0x1b5):对‘nf_put_vara_double_’未定义的引用
field_routines.f:(.text+0x1e3):对‘nf_get_vara_double_’未定义的引用
field_routines.o:在函数‘ext_ncd_intfieldio_’中:
field_routines.f:(.text+0x315):对‘nf_put_vara_int_’未定义的引用
field_routines.f:(.text+0x343):对‘nf_get_vara_int_’未定义的引用
field_routines.o:在函数‘ext_ncd_logicalfieldio_’中:
field_routines.f:(.text+0x838):对‘nf_put_vara_int_’未定义的引用
field_routines.f:(.text+0x8ac):对‘nf_get_vara_int_’未定义的引用
module_wrfsi_static.o:在函数‘__wrfsi_static_MOD_open_wrfsi_static’中:
module_wrfsi_static.f:(.text+0x129):对‘nf_open_’未定义的引用
module_wrfsi_static.f:(.text+0x25f):对‘nf_open_’未定义的引用
module_wrfsi_static.o:在函数‘__wrfsi_static_MOD_get_wrfsi_static_2d’中:
module_wrfsi_static.f:(.text+0x4a2):对‘nf_inq_varid_’未定义的引用
module_wrfsi_static.f:(.text+0x500):对‘nf_get_var_real_’未定义的引用
module_wrfsi_static.f:(.text+0x58d):对‘nf_close_’未定义的引用
module_wrfsi_static.o:在函数‘__wrfsi_static_MOD_get_wrfsi_static_dims’中:
module_wrfsi_static.f:(.text+0x5e2):对‘nf_inq_dimid_’未定义的引用
module_wrfsi_static.f:(.text+0x5f6):对‘nf_inq_dimlen_’未定义的引用
module_wrfsi_static.f:(.text+0x611):对‘nf_inq_dimid_’未定义的引用
module_wrfsi_static.f:(.text+0x625):对‘nf_inq_dimlen_’未定义的引用
module_wrfsi_static.f:(.text+0x6c3):对‘nf_close_’未定义的引用
collect2: 错误:ld 返回 1

real        0m0.751s
user        0m0.079s
sys        0m0.073s
make[2]: [diffwrf] 错误 1 (忽略)
make[2]: 离开目录“/home/model/wrf3.9/WRFV3/external/io_netcdf”
make[2]: 进入目录“/home/model/wrf3.9/WRFV3/external/io_netcdf”
make[2]: 对“all”无需做任何事。


---> Problems building executables, look for errors in the build log  <---





密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-1-24 13:12:17 | 显示全部楼层
目测netcdf没安装好,或者路径没给好
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-1-24 16:36:52 | 显示全部楼层
应该是楼上说的问题,建议重新按一遍hdf5,netcdf-c,netcdf-fortran然后再重新给路径
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-1-24 17:34:30 | 显示全部楼层
谢谢楼上两位!netcdf改成了3.6版本后没有未定义引用的问题了,但还是有错误如下:
/usr/bin/ld: 找不到 -lhdf5_fortran
/usr/bin/ld: 找不到 -lz
collect2: 错误:ld 返回 1
0.09user 0.06system 0:01.37elapsed 11%CPU (0avgtext+0avgdata 21268maxresident)k
10128inputs+8outputs (8major+6014minor)pagefaults 0swaps
make[1]: [em_wrf] 错误 1 (忽略)

另外有许多警告chem没装应该没事吧
警告: Nonexistent include directory "/home/model/wrf3.9/WRFV3/chem"
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-1-24 17:38:34 | 显示全部楼层
错误好像是hdf5的问题,确实安装hdf5时make check也是有错误的,但后面make install 又正常出来了四个文件夹我也就没太在意了,看来还是不行,make check的错误如下:
make[6]: *** [h5repack.sh.chkexe_] 错误 1
make[6]: 离开目录“/home/down/hdf5-1.10.4/tools/test/h5repack”
make[5]: *** [build-check-s] 错误 2
make[5]: 离开目录“/home/down/hdf5-1.10.4/tools/test/h5repack”
make[4]: *** [test] 错误 2
make[4]: 离开目录“/home/down/hdf5-1.10.4/tools/test/h5repack”
make[3]: *** [check-am] 错误 2
make[3]: 离开目录“/home/down/hdf5-1.10.4/tools/test/h5repack”
make[2]: *** [check-recursive] 错误 1
make[2]: 离开目录“/home/down/hdf5-1.10.4/tools/test”
make[1]: *** [check-recursive] 错误 1
make[1]: 离开目录“/home/down/hdf5-1.10.4/tools”
make: *** [check-recursive] 错误 1
请教高手怎么解决?十分感谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-1-24 20:23:27 | 显示全部楼层
问题解决了,参考如下链接
https://blog.csdn.net/a922922737/article/details/109697291
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-1-30 16:18:16 | 显示全部楼层
谢谢楼主分享,收藏先。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表