2016-07-28 1 views
0

을 나는이 메이크메이크 빌드 MV`실패했습니다 : 없음 match.`

SHELL = /bin/tcsh 

include ../make.inc 


FC = gfortran 

#-------------------------------------------------------------------- 
# Compiler flags 
#-------------------------------------------------------------------- 

# none 
#FFLAGS = 

# Optimize 
#FFLAGS = -O 

# debug 
#FFLAGS = -g 

# Large memory needed (ifort) 
FFLAGS = -O 


#-------------------------------------------------------------------- 
# Location of files 
#-------------------------------------------------------------------- 

DIR  = ./ 
PLSRC = ./src/ 

PLPROG = ./programs/ 


#-------------------------------------------------------------------- 
# Module flag 
#-------------------------------------------------------------------- 

# Sun Compiler 
#MFLAG = -M 

# Nag Compiler 
#MFLAG = -i 
#MFLAG = -I 

# Absoft Compiler 
#MFLAG = -p 

# Intel or g95 compiler 
MFLAG = -I 

MODULE = $(MFLAG)$(MOD) 

#-------------------------------------------------------------------- 
# Fortran Files 
#-------------------------------------------------------------------- 

PLFILES = gplot.f90 gnuplot.f90 

PLPRFILES = xyplot.f90 

#-------------------------------------------------------------------- 
# Objects Files 
#-------------------------------------------------------------------- 

PLOBJS = $(PLFILES:.f90=.o) 

#-------------------------------------------------------------------- 
# Compile libraries 
#-------------------------------------------------------------------- 

# [email protected] means the target name 
# $? means all dependencies (OBJS) that are new. 
# $< similar to $? but just on dependency rules (%.o : %.f90) 


all : libgplot.a organize pl_progs 

libgplot.a : $(PLOBJS) 
    ar cr [email protected] $(PLOBJS) 
    ranlib [email protected] 
    rm *.o 

%.o : $(PLSRC)%.f90 
    $(FC) $(FFLAGS) -c $< -o [email protected] 

organize : libgplot.a 
    mv *.mod $(MOD) 
    mv *.a $(LIB) 

#-------------------------------------------------------------------- 
# Compile programs 
#-------------------------------------------------------------------- 

pl_progs : xyplot test_plot 

%:  $(PLPROG)%.f90 $(LIB)libgplot.a 
    $(FC) $(FFLAGS) $(MODULE) $< $(LIB)libgplot.a -o $(PROG)[email protected] 
    mv *.mod $(MOD) 

#-------------------------------------------------------------------- 
# Clean 
#-------------------------------------------------------------------- 

clean: 
    rm $(LIB)libgplot.a 

사용하여 코드를 컴파일하고 내가 이해하지 못하는이

[email protected]:/home/milenko/gprieto/gplot# make 
gfortran -O -c src/gplot.f90 -o gplot.o 
gfortran -O -c src/gnuplot.f90 -o gnuplot.o 
ar cr libgplot.a gplot.o gnuplot.o 
ranlib libgplot.a 
rm *.o 
mv *.mod /usr/local/ 
mv *.a /usr/local/lib/ 
gfortran -O -I/usr/local/ programs/xyplot.f90 /usr/local/lib/libgplot.a -o /usr/local/bin/xyplot 
mv *.mod /usr/local/ 
gfortran -O -I/usr/local/ programs/test_plot.f90 /usr/local/lib/libgplot.a -o /usr/local/bin/test_plot 
mv *.mod /usr/local/ 
mv: No match. 
Makefile:123: recipe for target 'test_plot' failed 
make: *** [test_plot] Error 1 

을 가지고 왜이 경우 실패 및 처방 xyplot으로 작업했습니다.

답변

1

는 실패가

mv *.mod /usr/local/ 
mv: No match. 

에서이 오류를 트리거 때문에 움직일 수없는 *.mod 파일 mv이 없습니다 발생합니다.

가장 큰 원인은 test_plot.f90에 주 프로그램과 모듈이 모두 포함되어 있다는 것입니다. 이 파일에는 mv *.mod /usr/local/ 명령을위한 위치가 없습니다.

+0

예, 사실입니다. test_plot.f90은 주 프로그램 만 포함합니다. –