我刚开始使用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.old、gcc和as前面的空格都是制表符,所以我认为空格是可以的。当我调用'make makefile‘时,它返回'make: Nothing to be to for’makefile‘。’但是,如果我更改了chello的依赖项,比如chello.c,则返回相同的消息,并且chello的行为不会被修改。
发布于 2012-10-15 01:18:01
来自man make
make执行makefile中的命令以更新一个或多个目标名称,其中名称通常是程序。如果不存在makefile选项,make将按顺序查找Makefile GNUmakefile、Makefile和Makefile。
make makefile实际上将执行您的"makefile“文件(因为它列在手册页中的默认名称中),并尝试构建已经存在的"makefile”目标(因为您传递的参数
您需要的是构建"chello“二进制文件,因此您必须键入:
make chello
或者:
make -f makefile chello
发布于 2012-10-15 01:17:54
这里是另一个帐户,如果我只调用"make“而不是"make makefile”,它似乎工作得很好。这个问题可以忽略不计。
https://stackoverflow.com/questions/12884503
复制相似问题