makefile

https://blog.csdn.net/weixin_38391755/article/details/80380786

 

基本语法:
1,目标文件:顶格冒号前面,代号$@

2,依赖文件:冒号后面,代号$<(第一个依赖) $^(全部依赖)等等

3,命令:一个Tab后面,像 gcc -o target file1.cc file2.cc,或者shell

4,命令前面的@:让命令不显示在终端

5,宏定义:最前面的等式,像cc = gcc  list = aaa bbb   ,引用时$(cc),引用shell的变量用$$xx

 

使用:

make target

 

TIP1:For循环的括号

makefile编辑成下面这样,输出./aaa ./bbb

list = aaa bbb

test:
  @for i in $(list); do (cd ./$$i && pwd) ;done

makefile编辑成下面这样,输出./aaa ./aaa/bbb

list = aaa bbb

test:
  @for i in $(list); do cd ./$$i && pwd ;done

 

TIP2:与依赖同名的Target

下面相当于定义了所有跟.cc同名的xxx.o的目标文件

%.o:%.cc
        gcc -c $<

 

TIP3:同名文件复制

下面相当于把原字符串种的 xxx.cc都替换成 xxx.o, 输出 aaa.o bbb.o ddd

src = aaa.cc bbb.cc ddd
obj = $(src:%.cc=%.o)

clean:
        echo $(obj)

 

TIP4:用shell查询返回文件列表

src = $(shell find ./ -name "*.cc")

clean:
        echo $(src)

 

posted @   小葱饼子  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示