我已经写了下面的makefile:
hw2p1: hw2p1_main.o hw2p1_getit.o hw2p1_parseit.o hw2p1_moveit.o hw2p1_showit.o
gcc hw2p1_main.o hw2p1_getit.o hw2p1_parseit.o hw2p1_moveit.o hw2p1_showit.o
hw2p1_main.o: hw2p1_main.c
gcc -c hw2p1_main.c
hw2p1_getit.o: hw2p1_getit.c
gcc -c hw2p1_getit.c
hw2p1_parseit.o: hw2p1_parseit.c
gcc -c hw2p1_parseit.c
hw2p1_moveit.o: hw2p1_moveit.c
gcc -c hw2p1_moveit.c
hw2p1_showit.o: hw2p1_showit.c
gcc -c hw2p1_showit.c当我第一次尝试调用make时,我得到了这样的错误:" make : Fatal error:意外的行尾显示“我删除了目标之间的空行并再次调用了make,但这次我得到了”ake: Fatal error:不知道如何制作hw2p1_main.c“
我已经分别编译了所有这些文件,然后将它们链接起来,所以我知道这些错误是由不正确的makefile造成的,而不是由我的c文件中的错误造成的。
这是我写的第一个makefile,所以我可能做得完全不正确。无论哪种方式,对于如何摆脱这些错误有什么建议吗?
发布于 2010-02-17 09:02:07
当目录无意中不是它应该是的目录时,可能会发生这种情况,因此看起来像是hw2p1_main.c的缺失需要一个规则来创建C源文件。
也可能是文件名拼写错误。
发布于 2010-02-17 09:03:14
您似乎在链接命令中遗漏了-o,尽管您可能还没有想到这一点。直接抱怨是make找不到.c文件。确定它在当前的工作目录中吗?
发布于 2010-02-17 09:16:08
首先,尝试使用makefile,它只编译一件事:
hw2p1_moveit.o: hw2p1_moveit.c
gcc -o moveit.o -c hw2p1_moveit.c另外,确保第二行使用TAB字符,而不是空格。(我必须在我的编辑器中手动设置它,因为空格是唯一的智能方法:)
https://stackoverflow.com/questions/2277626
复制相似问题