批量编译目录下文件的Makefile
2012-02-09 20:29
453 查看
1.在存放.c文件的目录下编按如下方法编写Makefile文件:
#Makefile start..
CC := gcc #根据需要添加其它如XX := g++
CFLAGS := -Wall -O -g #优化,输出调试信息,及所有警告
TARGET :=argcv test hello unixio getuid #要编译的目标名,文件名去后缀的
#下面开始一一编译了
all:$(TARGET)
@echo compileing...
%.o:%.c
$(CC) $(CFLAGS) -c $< #发现用-c和-o都是输出一样的,有点不明白
clean:
rm -rf $(TARGET)
#end Makefile
2.执行make,输出结果:
[savant@savant-host prog]$ make
gcc -Wall -O -g argcv.c -o argcv
gcc -Wall -O -g test.c -o test
gcc -Wall -O -g hello.c -o hello
gcc -Wall -O -g unixio.c -o unixio
gcc -Wall -O -g getuid.c -o getuid
3.另外,如果这个目录是存放的一个项目的文件,所有的文件最终生成一个可执行文件,用下面的Makefile:
CC = gcc
LD = gcc
CFLAGS = -Wall -c
LDFLAGS = -lpthread #还可以加入INCLUDES和LIBS变量,视情况而定
SRCS = $(wildcard *.c) #SRCS的值就是当前面目录下面所有的以.c结尾的源文件
OBJS = $(patsubst %c,%o,$(SRCS)) #SRCS目录下创建c文件相对的o文件
TARGET = myapp #最终链接生成的目标名
.PHONY: all clean
all: $(TARGET)
$(TARGET): $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
%o: %c
$(CC) $(CFLAGS) -o $@ $<
clean:
@rm -f *.o $(TARGET)
编译当前Makefile所在目录下的所有.c文件
执行
make
make clean
#Makefile start..
CC := gcc #根据需要添加其它如XX := g++
CFLAGS := -Wall -O -g #优化,输出调试信息,及所有警告
TARGET :=argcv test hello unixio getuid #要编译的目标名,文件名去后缀的
#下面开始一一编译了
all:$(TARGET)
@echo compileing...
%.o:%.c
$(CC) $(CFLAGS) -c $< #发现用-c和-o都是输出一样的,有点不明白
clean:
rm -rf $(TARGET)
#end Makefile
2.执行make,输出结果:
[savant@savant-host prog]$ make
gcc -Wall -O -g argcv.c -o argcv
gcc -Wall -O -g test.c -o test
gcc -Wall -O -g hello.c -o hello
gcc -Wall -O -g unixio.c -o unixio
gcc -Wall -O -g getuid.c -o getuid
3.另外,如果这个目录是存放的一个项目的文件,所有的文件最终生成一个可执行文件,用下面的Makefile:
CC = gcc
LD = gcc
CFLAGS = -Wall -c
LDFLAGS = -lpthread #还可以加入INCLUDES和LIBS变量,视情况而定
SRCS = $(wildcard *.c) #SRCS的值就是当前面目录下面所有的以.c结尾的源文件
OBJS = $(patsubst %c,%o,$(SRCS)) #SRCS目录下创建c文件相对的o文件
TARGET = myapp #最终链接生成的目标名
.PHONY: all clean
all: $(TARGET)
$(TARGET): $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
%o: %c
$(CC) $(CFLAGS) -o $@ $<
clean:
@rm -f *.o $(TARGET)
编译当前Makefile所在目录下的所有.c文件
执行
make
make clean
相关文章推荐
- 批量编译目录下文件的Makefile
- 多文件目录下makefile文件递归执行编译所有c文件
- Makefile编译目录下多个文件(简单例子0)
- Makefile编译目录下多个文件以及函数wildcard用法
- 从linux主目录中的makefile文件分析编译构成。。。
- 多文件目录下makefile文件递归执行编译所有c文件(小例子1)
- 多文件目录下makefile文件递归执行编译所有c文件
- makefile之多目录文件编译
- Makefile-----编译目录下多个文件
- Makefile编译目录下多个文件以及函数wildcard用法
- makefile 自动编译同一个目录下的所有文件
- Makefile编译目录下多个文件
- makefile编译一个目录下的文件
- 编译多路径/目录源代码并生成多个可执行文件的makefile实例
- 编译目录下所有cpp文件的makefile
- makefile 自动编译同一个目录下的所有文件
- 快速编写“专家级”makefile(4.打造更专业的编译环境——支持头文件目录的指定)
- makefile在同一目录下编译出多个可执行文件
- 【转】多文件目录下makefile文件递归执行编译所有c文件
- Makefile编译目录下多个文件