编译时错误:' make: * No rule to make target '



我试图链接Lapack库与我的Makefile和Fortran 90代码(gfortran),但每次我键入:make pkr_test (pkr_test是代码的名称)我得到以下错误:

make[1]: * No rule to make target '/usr/ben/models/common/src/fitting.o'. Stop. make[1]: Leaving directory '/usr/ben/models/common/src' Makefile:20: recipe for target '/usr/ben/models/common/src/fitting.o' failed make: * [/usr/ben/models/common/src/fitting.o] Error 2

我可以附加Makefile和Makefile。也许它会帮助你给我一个快速的解决方案。我试着把它附加上去,但是没有成功。

下面是Makefile:
#
# Makefile for pqr_test
#
include ../../Makefile.in
#
MODS=   $(DIR_test)wrt_two.o 
    $(DIR_test)ppt_one.o 
    $(DIR_test)cat_one.o 
    $(DIR_test)uti_test.o 
    $(DIR_test)ncdf_test.o 
    $(DIR_test)quick_test.o 
    $(DIR_test)ovr_one.o 
    $(DIR_test)row_to.o  
    $(DIR_test)fitting.o 
#
OBJS=pqr_test.o 
#
$(MODS) : 
    cd $(DIR_test) && make $(MODS)
#
pqr_test : $(MODS) $(OBJS)
    cd $(DIR_test) && make $(MODS)
    $(FC) $(FFLAGS) -L$(XML_LIB)  -L$(NC_LIB_LOC) -L$(NC_LIB_LAPACK_LOC) -I$(NC_INCLUDE) -I$(NC_LAPACK_INCLUDE) 
        -Wl,-rpath,$(NC_LIB_LOC) $(NC_LIB_LAPACK_LOC) $(MODS) $(OBJS) $(NC_LIB) $(NC_LIB_LAPACK) 
        -lflib -o ../bin/pqr_test
#
pqr_test.o : pqr_test.f90
    cd $(DIR_test) && make $(MODS)
    $(FC) $(FFLAGS) -I$(DIR_test) -I$(XML_INCLUDE) -I$(NC_INCLUDE) -I$(NC_LAPACK_INCLUDE) -c pqr_test.f90
#
cleanup:
    mv $(DIR_test)*.o   $(DIR_test)../obj/
    mv $(DIR_test)*.mod $(DIR_test)../mod/
    mv *.o ../obj/
#
clean:
    rm -f $(DIR_test)*.o   
    rm -f $(DIR_test)../obj/*.o 
    rm -f $(DIR_test)*.mod
    rm -f $(DIR_test)../obj/*.o
    rm -f *.o  
    rm -f ../obj/*.o
#

我试图链接Lapack库与我的Makefile和Fortran 90代码(gfortran),但每次我键入:make pkr_test (pkr_test是代码的名称),我得到以下错误:

make[1]: * No rule to make target '/usr/ben/models/common/src/fitting.o'. Stop. 
make[1]: Leaving directory '/usr/ben/models/common/src' 
Makefile:20: recipe for target '/usr/ben/models/common/src/fitting.o' failed 
make: * [/usr/ben/models/common/src/fitting.o] Error 2 

Makefile尝试构建在MODS变量中指定的(对象)模块,包括最后一个$(DIR_test)fitting.o

它通过调用自身make $(DIR_test)fitting.o来实现这一点。问题是您的Makefile和包含的Makefile (../../Makefile.in)不包含如何生成该文件的说明,并且隐式make规则也不会成功。

由于无法构建依赖项($(DIR_test)fitting.o), make无法构建指定的目标(pkr_test)。

最新更新