makefile 编译问题 make: *** No rule to make target `defprec.o)',

green_tea789 发布于 2012/11/01 22:07
阅读 8K+
收藏 0
makefile用debuging 选项编译(make -d -p)错误信息如下:

Considering target file `defprec.o)'.

正常的在别人的机子下运行是:

 Considering target file `../../../lib/libioipsl.a(defprec.o)'.

makefile 文件中相关的行是:

all: $(MODEL_LIB)($(OBJSMODS1))

$(MODEL_LIB)(%.o): %.f90
    $(F_C) $(F_O) -I$(NCDF_INC) $*.f90
    $(A_C) $(MODEL_LIB) $*.o

其中OBJSMODS1 = $(MODS1:.f90=.o)

MODS1 = defprec.f90

F_C = g95 -c

我在目录下用g95 -c defprec.f90 可以生成defprec.0, 但是用make不行,

make: *** No rule to make target `defprec.o)', needed by `all'.  Stop.

奇怪的是屏幕下面接着显示

+ '[' g95 = gfortran ']'
是不是系统把g95和gfortran混了?

求高手!

以下是问题补充:

@green_tea789:MODEL_LIB = $(LIBDIR)/libioipsl.a LIBDIR = ../../../lib (2012/11/02 08:47)
加载中
0
g
green_tea789

补充:

MODEL_LIB = $(LIBDIR)/libioipsl.a

LIBDIR = ../../../lib

我看了一下../../../lib里什么都没有,所以是libioipsl.a的生成问题吧。

0
g
green_tea789
问题找到了,我的make不认all: $(MODEL_LIB)($(OBJSMODS1))里MODS1 有多个变量。MODS1 = defprec.f90过了, MODS1 = defprec.f90 errioipsl.f90就不行。
返回顶部
顶部