makefile——编译所有.c文件为可执行文件
来源:互联网 发布:笔记本win7找不到网络 编辑:程序博客网 时间:2024/06/05 11:18
当前目录下有多个C文件,每个C文件有一个main函数,把这些C文件分别编译成对应名字的可执行文件。
注意不是把当前目录下所有C文件编译成一个可执行文件
CFLAGS = -g -Wall -WerrorLDFLAGS = -lpthreadsrc = $(wildcard *.c)target = $(patsubst %.c, %, ${src}).PHONY: all clean%.o:%.c$(CC) ${CFLAGS} -c -o $@%:%.o$(CC) ${LDFLAGS} -o $@all: ${target}clean:rm -f ${target}
或者
CFLAGS = -g -Wall -WerrorLDFLAGS = -lpthreadsrc = $(wildcard *.c)target = $(patsubst %.c, %, ${src}).PHONY: all clean%:%.c$(CC) ${CFLAGS} ${LDFLAGS} $^ -o $@all: ${target}clean:rm -f ${target}
注意下面的makefile是不正确的
CFLAGS = -g -Wall -WerrorLDFLAGS = -lpthreadsrc = $(wildcard *.c)target = $(patsubst %.c, %, ${src}).PHONY: all cleantarget: ${src}$(CC) ${CFLAGS} ${LDFLAGS} ${src} -o $@clean:rm -f ${target}
下面的也是不正确的
CFLAGS = -g -Wall -WerrorLDFLAGS = -lpthreadsrc = $(wildcard *.c)target = $(patsubst %.c, %, ${src}).PHONY: all clean%:%.c$(CC) ${CFLAGS} ${LDFLAGS} $^ -o $@clean:rm -f ${target}
虽然上面这个 Makefile不能使用命令
make
一次把所有.c生成相应的可执行文件,但是使用
make 某个.c文件名前面部分
是可以生成这个可执行文件的。
例如:
目录下存在test.c,使用上面的Makefile,用如下命令就可以生成test可执行文件:
make test
原因,没找到确切的解释,自己推测如下(如果有错请高手指点):
%:%.c 是一个模式规则,“%”的替换是在规则的其他变量和函数引用扩展完成之后进行的,变量和函数的展开一般发生在make读取Makefile时,而模式规则中的“%”则发生在make的执行过程。所以用make命令只能找到clean这个目标。
0 0
- makefile——编译所有.c文件为可执行文件
- Ubuntu系统下如何编译:.c文件为可执行文件
- Makefile自动编译目录下的所有.C文件
- makefile 自动编译所有文件
- makefile编译所有cpp文件
- c文件如何编译为ko的MAKEFILE文件编写
- .c文件如何编译为ko的MAKEFILE文件编写
- .c文件如何编译为ko的MAKEFILE文件编写
- makefile 编译可执行文件
- C文件如何成为可执行文件(编译、链接、执行)——摘自《程序员的自我修养》
- Makefile——编译目录所有Makefile并执行
- .C文件到可执行文件编译过程
- 多文件目录下makefile文件递归执行编译所有c文件(小例子1)
- 多文件目录下makefile文件递归执行编译所有c文件
- 多文件目录下makefile文件递归执行编译所有c文件
- 多文件目录下makefile文件递归执行编译所有c文件 很不错
- 多文件目录下makefile文件递归执行编译所有c文件
- 多文件目录下makefile文件递归执行编译所有c文件
- android版本更新
- va_start和va_end使用详解
- LeetCode | Single Number II(单个数字II)
- cocos2d-x打开网页android与ios平台
- Error parsing XML: not well-formed (invalid token) 报错,找不出原因
- makefile——编译所有.c文件为可执行文件
- hdu1106
- 服务器处理客户端请求线程只升不降问题分析总结
- mpeg1/2 量化过程
- dwg文件怎么打开
- 红黑树学习tips
- 完全卸载删除 Microsoft Office for Mac 2011
- Codeforces #261 (Div. 2) C. Pashmak and Buses(数学)
- IDempiere入门第二篇杂七杂八(郑州就维软件)