linux makefile文件管理工程

来源:互联网 发布:c语言把字符a变成字符b 编辑:程序博客网 时间:2024/05/23 18:45
make在执行时,需要一个命名为makefile的文件.make废了文件描述了整个工程编译,链接的规则.
其中包括:工程中的哪些源文件需要编译以及如何编译;需要创建哪些库文件以及如何创建这些库文件
如何最后产生我们想要得可执行文件.

这就是一个规则
 targets:prerequisites
     command

main.o:main.c
     gcc -c main.c
mian.o 是目标,也就是最后产生的东西
main.c 是依赖,也就是源文件
gcc -c main.c 是命令,也就是编译,链接的规则
**命令需要以[TAB]开始**


gcc -c main.c  生成.o文件
gcc -c mian.c -o 生成可执行文件


.PHONY:clean ".PHONY"将"clean"声明成伪一个没有依赖的目标,只有目标没有依赖,即伪目标


如果我们有多个依赖的时候我们可以在makefile中定义变量
obj=main.o func1.o func2.o func3.o
hello:$(obj)
     gcc $(obj) -o hello 
在添加或者修改依赖的时候就可以直接改变量赋值的地方修改就好.

$^:代表所有以来文件
$@:代表目标
$<:代表第一个依赖文件

hello:main.o func1.o func2.o
     gcc main.o func1.0 func2.o -o hello 
改写
hello:main.o func1.o func2.o
     gcc $^ -o $@

如何使用注释
#开始这一行就是注释

@的使用
#有@不显示编译命令信息(取消回显)
main.o:main.c
     @gcc -c main.c
#无@显示编译命令信息(回显)
main.o:main.c
     gcc -c main.c
0 0