make命令

-B:所有目标总是重新建立
-C:目录
--debug[=FLAGS]:打印各种调试信息
-f FILE:读取 FILE 作为一个 makefile
-j [N]:同时允许 N 个任务;无参数表明允许无限个任务
-s:不显示命令
-t:touch 目标而不是重新创建它们
-w:打印当前目录

FLAGS取值:
a:all,输出所有的调试信息
b:basic,只输出简单的调试信息
v:verbose,在b选项的级别之上。输出的信息包括哪个makefile被解析,不需要被重编译的依赖文件(或是依赖目标)等
i:implicit,输出所以的隐含规则
j:jobs,输出执行规则中命令的详细信息,如命令的PID、返回码等
m:makefile,输出make读取makefile,更新makefile,执行makefile的信息

举例

myapp: char.o callback.o
    cc -o $@ $^

char.o: char.c char.h
callback.o: callback.c char.h

每次不会重新编译所有文件

-MM
产生依赖关系清单

# gcc -MM

我们只需要把它的输出保存到一个临时文件里去,再把它插入到制作文件里去,就可以得到一个完美依赖关系

原文地址:https://www.cnblogs.com/zhangxuechao/p/11709970.html