赞
踩
参数 | 含义 |
---|---|
-o | 指定输出的可执行文件名 |
-E | 只对C源程序进行预处理,不编译 |
-S | 只编译到汇编文件,不再汇编 |
-c | 只编译生成目标文件,不进行链接 |
-g | 生成带有调试信息的debug文件 |
-O2 | 代码编译优化等级,一般选2 |
-W | 在编译中开启警告信息 |
-I | 大写i,在编译时指定头文件路径 |
-l | 小写L,指定程序使用的函数库 |
-L | 指定函数库的路径 |
格式:
目标:依赖
命令
预定义变量:
变量 | 含义 |
---|---|
AR | 库文件维护程序名称,默认ar |
AS | 汇编程序名称,默认as |
CC | c编译器名称,默认cc |
CPP | c预编译器名称,默认为$(CC) -E |
CXX | c++编译器名称,默认为g++ |
FC | FORTRAN编译器名称,默认为f77 |
RM | 文件删除程序名称,默认为rm -f |
ARFLAGS | 库文件维护程序选项,无默认值 |
ASFLAGS | 汇编程序的选项,无默认值 |
CFLAGS | c编译器的选项,无默认值 |
CPPFLAGS | c预编译器的选项,无默认值 |
CXXFLAGS | c++编译器等待选项,无默认值 |
FFLAGS | FORTRAN编译器的选项,无默认值 |
自动变量:
变量 | 含义 |
---|---|
$* | 不包含扩展名的目标文件名称 |
$+ | 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件 |
$< | 第一个依赖文件的名称 |
$? | 所有时间戳比目标文件晚的依赖文件,并以空格分开 |
$@ | 目标文件的完整名称 |
$^ | 所有不重复的依赖文件,以空格分开 |
$% | 如果目标是归档成员,则该变量表示目标的归档成员名称 |
命令选项:
格式 | 含义 |
---|---|
-I dir | 大写i,指定被包含的Makefile所在目录 |
-C dir | 读入指定目录下的Makefile |
-f file | 读入当前目录下的file文件作为Makefile |
-i | 忽略所有的命令执行错误 |
-n | 只打印要执行的命令,但不执行这些命令 |
-p | 显示make变量数据库和隐式规则 |
-s | 在执行命令是不显示命令 |
-w | 如果make在执行过程中改变目录,打印当前目录名 |
示例:
obj = main.o
CC = gcc
CFLAGS = -Wall -O -g
demo : $(obj)
$(CC) $^ -o $@
#main.o : main.c
clean :
rm demo $(obj)
之前写过个简单的,不再搬移。。。。。文章链接
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。