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 执行的啥。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值