设为首页 加入收藏

TOP

多个文件夹的Makefile
2014-11-24 15:00:09 来源: 作者: 【 】 浏览:68
Tags:多个 文件夹 Makefile

大家一定要注意,用makefile编译多个C程序的时候,只能有一个main函数


好闲话少叙,今天我要有makefile实现什么功能呢,已知有两个文件夹,每个文件夹下分别有三个C程序,使用makefile编译它们


首先建立第一个文件夹src及其三个.c 三个.h文件


vim guo.c


#include
#include"zhi.h"
#include"yuan.h"
#include"/home/feifei/Desktop/text/exit/qian.h"
#include"/home/feifei/Desktop/text/exit/ru.h"
#include"/home/feifei/Desktop/text/exit/shi.h"
void main()
{
printf("guo\n");
zhi();
yuan();
qian();
ru();
shi();

}




vim zhi.c //略


vim zhi.h


vim yuan.c


vim yuan.h




vim makefile


.PHONY:all
CC=gcc
all:guo.o zhi.o yuan.o

guo.o:guo.c
$(CC) -c guo.c
cp guo.o ../
zhi.o:zhi.c zhi.h
$(CC) -c zhi.c
cp zhi.o ../
yuan.o:yuan.c yuan.h
$(CC) -c yuan.c
cp yuan.o ../
clean:
rm -f *.o




好了,这第一个文件夹及里面的内容就建好了,下面我们建立第二个文件夹exit


(注意这里面的函数不能使用main函数)


vim qian.c


#include
void qian()
{
printf("qian\n");


}


vim qian.h


void qian();


vim ru.c //略


vim ru.h


vim shi.c


vim shi.h


vim makefile


.PHONY:obj
CC=gcc
obj:qian.o ru.o shi.o


qian.o:qian.c qian.h
$(CC) -c qian.c
cp qian.o ../
ru.o:ru.c ru.h
$(CC) -c ru.c ru.h
cp ru.o ../
shi.o:shi.c shi.h
$(CC) -c shi.c shi.h
cp shi.o ../
clean:
rm -f *.o




好啦,我们返回上一级目录,在这里编写makefile


vim makefile


feifei:guo.o zhi.o yuan.o qian.o ru.o shi.o
gcc guo.o zhi.o yuan.o qian.o ru.o shi.o -o feifei
guo.o:
cd ./src && $(MAKE)
zhi.o:
cd ./src && $(MAKE)
yuan.o:
cd ./src && $(MAKE)
qian.o:
cd ./exit && $(MAKE)
ru.o:
cd ./exit && $(MAKE)
shi.o:
cd ./exit && $(MAKE)
clean:
rm -r *.o feifei


然后make就可以了



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇通过Web远程浏览Mini6410上的摄像.. 下一篇Linux下的getch()函数的改进版

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: