【发布时间】:2014-12-23 20:25:35
【问题描述】:
我正在尝试在 Noah-MP 上运行 make。
但是,我不断收到此错误。 (*** 没有规则可以使目标module_netcdf_io.o', needed bydriver.exe'。停止。)
这是生成文件:
.SUFFIXES:
.SUFFIXES: .o .F
include user_build_options
OBJS = module_sf_noahmplsm.o \
module_model_constants.o \
module_sf_myjsfc.o \
module_sf_sfclay.o \
module_sf_noahlsm.o \
module_ascii_io.o \
module_netcdf_io.o \
module_io.o \
kwm_date_utilities.o \
module_sf_noahutl.o \
driver.o
CMD = driver.exe
FFLAGS = $(FREESOURCE) $(F90FLAGS)
all: $(CMD)
driver.exe: $(OBJS)
$(COMPILERF90) -o $(@) $(OBJS) $(NETCDFLIB)
.F.o:
$(RM) $(*).f90
$(CPP) $(CPPMACROS) $(NETCDFINC) $(*).F > $(*).f90
$(COMPILERF90) -c $(FFLAGS) $(NETCDFINC) $(*).f90
$(RM) $(*).f90
clean:
$(RM) $(OBJS) $(CMD) *.mod *~
driver.exe: driver.o
driver.exe: module_sf_noahmplsm.o
driver.exe: module_sf_noahutl.o
driver.exe: module_io.o
module_io.o: module_ascii_io.o
module_io.o: module_netcdf_io.o
module_ascii_io.o: kwm_date_utilities.o
module_sf_noahmplsm.o: module_sf_myjsfc.o module_sf_sfclay.o module_sf_noahlsm.o
module_sf_myjsfc.o: module_model_constants.o
该文件夹包含以下文件:
graphics
bondville.dat
bondville.val
driver.F
GENPARM.TBL
kwm_date_utilities.F
Makefile
module_ascii_io.F
module_io.F
module_model_constants.F
module_netcdf_io.F
module_sf_myjsfc.F
module_sf_noahlsm.F
module_sf_noahmplsm.F
module_sf_noahutl.F
module_sf_sfclay.F
MPTABLE.TBL
README
SOILPARM.TBL
user_build_options
VEGPARM.TBL
将文件与 netcdf 目录链接所需的 user_build-options 如下所示:
#
# Options for Linux with Intel Fortran
#
# COMPILERF90 = ifort
# FREESOURCE = -free
# CPPMACROS = -D_SIMPLE_DRIVER_
# F90FLAGS = -convert big_endian -g -O0 -check all,noshape,nopointer,noarg_temp_created -fp-model precise -fpe0 #-fp-model strict
# CPP = cpp -C -P -traditional
# LIBS =
# NETCDFDIR = /home/tirtha/libs/netcdf/
# NETCDFINC = /home/tirtha/libs/netcdf/include/
# NETCDFLIB = /home/tirtha/libs/netcdf/lib/
# NCARG_ROOT = /home/tirtha/NCARG/ncl6.1/
# RM = rm -f
# CC = cc
我在运行代码之前删除了哈希标签。
【问题讨论】:
-
除了您提到的那个文件之外,是否编译过其他文件?
-
make module_netcdf_io.o会产生同样的错误吗?make module_model_constants.o呢?make <some-other-file.o>呢? -
@SantoshA 不,没有任何文件被编译。它们都显示两个错误之一,要么是无规则错误,要么是:rm -f driver.f90 cpp -C -P -traditional -D__GFORTRAN__ -D_SIMPLE_DRIVER_ /home/tirtha/libs/netcdf/include/driver.F > driver.f90 cc1: 错误: /home/tirtha/libs/netcdf/include/: 没有这样的文件或目录 make: *** [driver.o] 错误 1
-
@EtanReisner 它们都产生相同的错误。还有另一种错误类型,当我制作“module_ascii_io.o”或“module_sf_sfclay.o”时会调用它。它是这样的: rm -f kwm_date_utilities.f90 cpp -C -P -traditional -D__GFORTRAN__ -D_SIMPLE_DRIVER_ /home/tirtha/libs/netcdf/include/ kwm_date_utilities.F > kwm_date_utilities.f90 cc1: error: /home /tirtha/libs/netcdf/include/: 没有这样的文件或目录 make: *** [kwm_date_utilities.o] 错误 1
-
检查此命令是否有效 "cpp -C -P -traditional -D__GFORTRAN__ -D_SIMPLE_DRIVER_ -I/home/tirtha/libs/netcdf/include/driver.F > driver.f90"