Makefile文件的编写规则
target ... : prerequisites ...
command
...
target也就是一个目标文件,可以是目标文件(Object File),也可以是执行文件。还可以是一个标签(Label),prerequisites就是,要生成那个target所需要的文件或是目标文件或是标签。 command也就是make需要执行的命令(任意的Shell命令或gcc命令)。
例如:
①all:
gcc -o app app.o
string:
gcc -c ../../string.c -o ../ string.o
clean:
rm -rf ../*.o
在命令行模式下输入make命令自动执行第一个标号all处的命令(gcc -c app.c -o app)。
也可以在命令行模式下输入make string命令,就会执行标号string处的命令(gcc -c string.c -o string.o);
如果程序这样写
②all:string
gcc -c app.c -o app
string:
gcc -c string.c -o string.o
clean:
rm -rf ../*.o
在命令行模式下输入make命令时会先执string标号处的命令在执行,再执行all标号处的命令。
如果程序这样写
③all:string.o
gcc -c app.c -o app
string.o:
gcc -c string.c -o string.o
clean:
rm -rf ../*.o
此时的all:string.o中的string.o为命令gcc -c string.c -o string.o生成的目标文件(string.o),意思为如果在当前目下没有string.o的目标文件,就会把string.o当作标号,来执行标号string.o处的命令。目的就是是如果没有生成目标文件(string.o)时,先去生成
目标文件(string.o)。