linux多个文件夹makefile,多个文件夹的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

a00444d34ce6737bf1eff6903aeb8a24.gif

好了,这第一个文件夹及里面的内容就建好了,下面我们建立第二个文件夹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

fa31784dc79a0a3d9275cd04edb58a15.gif

好啦,我们返回上一级目录,在这里编写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就可以了

ebb02e51ebaf32e82c80552b60e8a71d.gif0b1331709591d260c1c78e86d0c51c18.png

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值