0

我不熟悉使用 makefile 并尝试生成基本的 makefile 作为大学练习的一部分。我有两个源代码文件,chello.c 和 writeexit.s,它们必须被编译/汇编,然后链接以生成 chello。

这是我到目前为止的makefile代码:

chello: chello.o  writeexit.o
  ld -N chello.o writeexit.o -o chello

chello.o: chello.c
  gcc -c chello.c -o chello.o

writeexit.o: writeexit.s
  as writeexit.s -o writeexit.o

ld、gcc 和 as 之前的空格都是制表符,所以我认为空格很好。当我调用“make makefile”时,它返回“make: Nothing to be done for `makefile'。” 但是,如果我更改了 chello 的依赖项,例如 chello.c,则会返回相同的消息,并且不会修改 chello 的行为。

4

2 回答 2

2

来自man make

make 执行 makefile 中的命令以更新一个或多个目标名称,其中名称通常是一个程序。如果不存在 -f 选项,make 将按顺序查找 makefile GNUmakefile、makefile 和 Makefile。

make makefile实际上将执行您的“makefile”(因为它在手册页中的默认名称中列出)文件,尝试构建已经存在的“makefile”目标(因为您传递的参数)

您需要构建“chello”二进制文件,因此您必须输入:

make chello

或者:

make -f makefile chello

于 2012-10-14T17:18:01.337 回答
0

此处的替代帐户,如果我只调用“make”而不是“make makefile”,它似乎工作正常。这个问题可以忽略。

于 2012-10-14T17:17:53.527 回答