Makefile配方失败

时间:2016-06-24 16:05:26

标签: makefile

我正在尝试为程序编写一个makefile,它是用c ++编写的,并使用用fortran编写的例程。我写了这样的makefile:

#
OBJ = main.o graph.o
LAPACK= lapack/dstevx.o lapack/lsame.o lapack/xerbla.o lapack/dlamch.o lapack/disnan.o \
        lapack/dlae2.o lapack/dlaebz.o lapack/dlaev2.o lapack/dlagtf.o lapack/dlagts.o
BLAS = blas/dscal.o blas/dswap.o blas/dcopy.o
DEPS = graph.h
#
FC      =  c:/MinGW/bin/gfortran
FCFLAGS =  -c -O2
LD      =  c:/MinGW/bin/gfortran 
FC      =  gfortran
GC      =  g++.exe 
LD      =  gfortran 
CFLAGS  =  -I.
CXXFLAGS=  -g -std=c++11 -Wall -pedantic -Wno-write-string
#
# clear list of default suffixes, and declare default suffixes
.SUFFIXES:
.SUFFIXES: .f .f90 .c .o .cpp .h
# default rule to make .o files from .f files
.f.o  : ;       $(FC) $(FCFLAGS) $*.f -o $*.o
.f90.o  : ;       $(FC) $(FCFLAGS) $*.f90 -o $*.o
.c.o  : ;       $(GC) $(CXXFLAGS) $*.c -c $*.o
.cpp.o  : ;       $(GC) $(CXXCFLAGS) $*.cpp -c $*.o
#
graph.exe: ${OBJ} $(BLAS) $(LAPACK)
    $(GC) $(CXXCFLAGS) $(BLAS) $(LAPACK) ${OBJ}  -o graph.exe
#
clean :
    rm.exe -f  *.mod ${BLAS} ${LAPACK} ${OBJ} ${LIB} *.exe core 

但是,当我尝试使用它时,我收到recipe for graph.o failed错误。你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我能看到的一个问题是这个命令的编写方式

$(GC) $(CXXFLAGS) $*.c -c $*.o

它将尝试编译文件graph.o