我正在为一个简单的程序编写 makefile,它有两个与之关联的文件:main.cpp 和 game.adt。我应该使用 csplit 将 game.adt 分成标题和源代码(guess.h 和guess.cpp)两部分。我尝试像这样编译 makefile:
HEADERS=guess.h
#Targets:
default: guessGame
guessGame: guess.o main.o
g++ guess.o main.o -o guessGame
guess.o: guess.cpp $(HEADERS)
g++ -c guess.cpp -o guess.o
main.o: main.cpp $(HEADERS)
g++ -c main.cpp -o main.o
clean:
-rm -f guessGame *.o
然而它说“guess.o 不需要目标guess.cpp 的规则”。头文件也是如此。我知道这是因为文件“guess.cpp”和“guess.h”不存在,但这是因为我应该拆分 .adt 文件以使其成为guess.cpp 和guess.h。如何使用 adt 文件为目标guess.cpp 和guess.h 创建规则?
答案1
这可能会得到改善。但它应该让你开始:
guess.cpp guess.h : game.adt
csplit -sz $< '/Split Here/'
mv xx00 guess.h
mv xx01 guess.cpp
确保规则缩进是制表符而不是空格。