unix makefile 错误——没有生成目标的规则

unix makefile 错误——没有生成目标的规则

我正在为一个简单的程序编写 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

确保规则缩进是制表符而不是空格。

相关内容