linux-Makefile
参考学习视频:[linux从零到精通] gcc和Makefile,多文件编译神器
通配符
$@ 所有的目标文件
$^ 所有的依赖文件
$< 所有的依赖文件的第一个文件

make -j 参数加快编译效率
对于大型项目,在使用cmake控制编译时,仅仅执行make指令效率较低,使用make -j后面跟一个数字,比如make -j4 make -j6 make -j14等。
含义是 让make最多允许n个编译命令同时执行,这样可以更有效的利用CPU资源。
假设我们的系统是cpu是12核,在不影响其他工作的情况下,我们可以make -j12
将cpu资源充分利用起来,一般来说,最大并行任务数为cpu_num * 2
1. 查看物理CPU的个数
#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
2. 查看逻辑CPU的个数
#cat /proc/cpuinfo |grep "processor"|wc -l
3. 查看CPU是几核
#cat /proc/cpuinfo |grep "cores"|uniq
4. 查看CPU的主频
#cat /proc/cpuinfo |grep MHz|uniq
#以'#'开头的行表示注释
#定义变量VAR,强制赋值为app
VAR=test
#在VAR之前定义的值后面再追加app这个值,这时该变量值扩展为testapp
VAR+=app
#如果之前VAR没有被定义,则定义并使用testapp;否则使用之前的值。
VAR?=testapp
# 第一条目标为总的目标,
# 依赖可以是文件(目录)或为其他目标,依赖不是必须
# 动作可以是Linux命令,动作的那一行必须以TAB键开头
target: depend1 depend2 depend3 ...<
本文详细介绍了Linux Makefile的使用,包括基本规则、工作原理、变量、函数及清理操作。通过实例展示了如何利用Makefile提升编译效率,如使用make-j参数并行编译,以及如何定义和使用自动变量、模式规则。还讨论了Makefile中的.PHONY伪目标和清理目标,以实现高效自动化构建和清理。
最低0.47元/天 解锁文章
470

被折叠的 条评论
为什么被折叠?



