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 ...<