目标:依赖
makefile中的变量:
注释:
命令
如:
hello.o : hello.c
gcc -c hello.c //注意这一行开头必须用TAB键 格式
否则会提示 missing separator. Stop. 错误
在命令行中输入命令: make 时
会自动搜寻当前目录下的makefile文件,或者Makefile
如果没有,可以指定哪个文件为makefile
命令: make -f mymakefile
makefile中的变量:
如:
obj= hello.o test.o abc.o
hello:$(obj)
gcc $(obj) -o hello
默认的变量:
$^ : 所有依赖的文件
$@: 代表目标
$<: 第一个依赖文件
这样就可以把命令行简写:
gcc $^ -o $@
注释:
#开头的一行被解释为注释
例子:
hello:$(obj)
@gcc $(obj) -o hello
@符号表示取消在屏幕显示编译的命令。功能一样,只是@看不到 gcc hello.o -o hell 这个提示
加上就能看到,虽然看起来很嚣张,但是编译内核的时候,满屏幕都是命令,就看起来烦躁,就可以加上@取消提示
例子:
hello:hello.c
gcc hello.c -o hello
mytest:
mkdir -p ./mydir
clean:
rm hello
在makefile中自定义 mytest 在当前目录下创建文件夹mydir -p 的意思是:可以创建多子目录
例如 mkdir -p ./mydir/src
编写完makefile后就可以直接: make mytest 就会执行下面的命令 哇咔咔
终于看懂mstar的supernova makefile是啥意思了,一直以来都是根据编译说明,一步一步敲命令,搞不懂 make rebuild_all 执行的啥。
终于看懂mstar的supernova makefile是啥意思了,一直以来都是根据编译说明,一步一步敲命令,搞不懂 make rebuild_all 执行的啥。