程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 多個文件夾的makefile

多個文件夾的makefile

編輯:關於C語言

 

大家一定要注意,用makefile編譯多個C程序的時候,只能有一個main函數

好閒話少敘,今天我要有makefile實現什麼功能呢,已知有兩個文件夾,每個文件夾下分別有三個C程序,使用makefile編譯它們

首先建立第一個文件夾src及其三個.c 三個.h文件

vim guo.c

#include<stdio.h>

#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<stdio.h>

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就可以了

\

摘自

guozhiyuan20095318的專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved