使用all、clean和other创建makefile C

使用all、clean和other创建makefile C,c,makefile,C,Makefile,我的教授给了我一个他已经写过的代码,剩下的我们必须填写。现在我们的任务是使用多个目标创建一个makefile。以下是方向: “3.创建一个Makefile来创建您的项目。您的Makefile应该具有以下目标(将所有目标放在顶部) a、 )。所有创建所有对象文件和可执行文件 b、 ).Wall.o从Wall.c构建Wall.o对象文件 c、 ).Maze.o从Maze.c构建Maze.o对象文件 d、 ).disjointsetatt.o从disjointsetatt.c构建disjointset

我的教授给了我一个他已经写过的代码,剩下的我们必须填写。现在我们的任务是使用多个目标创建一个makefile。以下是方向:

“3.创建一个Makefile来创建您的项目。您的Makefile应该具有以下目标(将所有目标放在顶部)

a、 )。所有创建所有对象文件和可执行文件

b、 ).Wall.o从Wall.c构建Wall.o对象文件

c、 ).Maze.o从Maze.c构建Maze.o对象文件

d、 ).disjointsetatt.o从disjointsetatt.c构建disjointsetatt.o对象文件

e、 ).MazeBuilder.o从MazeBuilder.c构建MazeBuilder.o对象文件

f、 )。MazeBuilder从所有对象文件生成MazeBuilder可执行文件

g、 )。清除删除所有对象文件和可执行文件。“

这就是我到目前为止所做的:

all: MazeBuilder

Wall.o: Wall.c
    gcc -c -Wall Wall.c

Maze.o: Maze.c
    gcc -c -Wall Maze.c

DisjointSetADT.o: DisjointSetADT.c
    gcc -c -Wall DisjointSetADT.c

MazeBuilder.o: MazeBuilder.c
    gcc -c -Wall MazeBuilder.c

MazeBuilder: MazeBuilder.o Wall.o Maze.o DisjointSetADT.o 
    gcc MazeBuilder.o Wall.o Maze.o DisjointSetADT.o -o MazeBuilder

clean:
    rm -f *.o MazeBuilder

我不知道为什么我的自动分级机说makefile不工作。每个目标下都已经有选项卡,不知道为什么在我复制代码时它们不会弹出。

我们必须分步进行

从包含各种源文件(
Wall.c
disjointsetatt.c
等)和makefile的目录开始这很重要。

1) 从命令行编译。尝试此命令(在命令行中,而不是“make”):

这应该构建
Wall.o
;如果没有,那么告诉我们(在对这个答案的评论中)确切的结果是什么。如果有效,请移除
Wall.o
并继续

2) 用Make编译。试试这个:

make Wall.o
这应该做与步骤1完全相同的事情。如果有效,请尝试
makeclean
移除
Wall.o

3) 生成所有对象文件:

make MazeBuilder.o Wall.o Maze.o DisjointSetADT.o
4) 手动链接对象:

gcc MazeBuilder.o Wall.o Maze.o DisjointSetADT.o -o MazeBuilder
5) 整个谢邦:

make clean
make MazeBuilder
6) 使用默认规则:

make clean
make

告诉我们这个序列失败的地方和原因,我们将尝试修复它。

首先:将构建目标和依赖项放在一行,将构建说明放在下一行,并用一个选项卡缩进。不知道你所说的$-c是什么意思。对不起,我会转贴的。我不知道为什么会有这些字符。makefile不是用c写的。应该可以用。尝试本地构建我得到的错误是mazebuilder没有正确构建
make clean
make