文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>批量编译目录下文件的Makefile

批量编译目录下文件的Makefile

时间:2010-04-22  来源:jianyuehan

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
文章参考http://www.pubembed.com/jiangshibowen/201002/25507.html
http://blog.chinaunix.net/u1/38994/showart_715341.html
相关阅读 更多 +
排行榜 更多 +
哥布林弹球b服手游下载

哥布林弹球b服手游下载

休闲益智 下载
小马样式盒游戏下载

小马样式盒游戏下载

休闲益智 下载
异变小镇中文版下载安装

异变小镇中文版下载安装

冒险解谜 下载