我正在尝试执行一项使用“makefile”、“自述文件”以及 C++ 源程序(.cpp 文件)的作业,所有这些都应该位于压缩的 tar 文件中。我被告知我的 makefile 也应该有一个干净和备份的规则,我不知道如何正确地完成其余的事情。
我试图交作业,但被告知“您的 makefile 没有编译此程序的默认规则。”
这是我的生成文件:
# makefile to build a program
clean:
/bin/rm -f myname *.o
backup:
tar czf cm25.assignment4_1.tar.gz readme Makefile
显然我错过了一些东西,但这是一个老的生成文件来自老的可以用作参考的作业,但我不知道我需要包括什么和不需要包括什么:
# makefile to build a program
# program depends on components: name and main
myname: main.o name.o
g++ -g main.o name.o -o myname
# name.cpp has it's own header file
name.o: name.cpp name.h
g++ -c -g name.cpp
# main.cpp also uses the header file name.h
main.o: main.cpp name.h
g++ -c -g main.cpp
clean:
/bin/rm -f myname *.o
backup:
tar czf cm25.assignment4_1.tar.gz *.cpp readme Makefile
我的所有压缩 tar 文件只有一个 .cpp 文件、一个自述文件和一个 makefile,我没有标头或任何东西。
答案1
我试图交作业,但被告知“您的 makefile 没有编译此程序的默认规则。”
好吧,无论是谁说的都是对的:您只有两条规则,一条删除构建产品,一条归档部分项目(不包括实际的源代码)。
在 Makefile 的开头添加:
all: myprogram
最后:
myprogram: myprogram.cpp
(TAB)gcc -Os -Werror -Wall -Wextra -o myprogram myprogram.cpp