为 C 编译器编写 MakeFile,出现“无输入文件”致命错误

问题描述

我的 MakeFile 是这样的:(这会创建一个主程序,该程序接受一个文件生成语法树、TAC 代码等。main.cpp 中使用的类和 parser.y 中定义的类在 classes.cpp 中)

MAIN = main
PARSE = parser
SCAN = scanner
CLASS = classes

compiler: lex.yy.c y.yab.h y.tab.c $(CLASSES).cpp
     g++ -std=c++11 -Wno-write-strings -o compiler $(MAIN).cpp

y.tab.c y.tab.h: $(PARSE).y $(CLASSES).cpp
     yacc -d $(PARSE).y

lex.yy.c: $(SCAN).l
     lex $(SCAN).l

clean:
     rm -f lex.yy.* y.tab.* *.tokens *.syntree *.tac *.log compiler

但是当我运行 make 我得到

g++          -o .cpp
g++: Fatal error: no input files
compilation terminated.
<builtin>: recipe for target '.cpp' Failed
make: *** [.cpp] Error 1

我该如何解决这个问题?

解决方法

“error: no input files”表示 src 文件不存在。常见原因是您移动或删除了某些 src 文件。