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)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战