linux makefile 編譯多個.c文件 實例


本例由 main.c  add.c sub.c add_sub.h 四個文件組成:編寫Makefile執行程序

 

 1 /*************************************************************************  2  > File Name: main.c  3  > Author:  4  > Mail:  5  > Created Time: Tue 25 Jul 2017 10:40:22 AM CST  6  ************************************************************************/
 7 
 8 #include<stdio.h>
 9 #include"add_sub.h"
10 int main() 11 { 12     printf(" 2 + 3 = %d\n", add(2, 3)); 13     printf(" 2 - 3 = %d\n", sub(2, 3)); 14     return 0; 15 }

 

 1 /*************************************************************************  2  > File Name: add.c  3  > Author:  4  > Mail:  5  > Created Time: Tue 25 Jul 2017 10:36:26 AM CST  6  ************************************************************************/
 7 #include "add_sub.h"
 8 
 9 int add(int a, int b) 10 { 11     return a + b; 12 }  
 1 /*************************************************************************  2  > File Name: sub.c  3  > Author:  4  > Mail:  5  > Created Time: Tue 25 Jul 2017 10:37:54 AM CST  6  ************************************************************************/
 7 
 8 #include "add_sub.h"
 9 
10 int sub(int a, int b) 11 { 12     return a - b; 13 }  
 1 /*************************************************************************  2  > File Name: add_sub.h  3  > Author:  4  > Mail:  5  > Created Time: Tue 25 Jul 2017 10:38:53 AM CST  6  ************************************************************************/
 7 
 8 #ifndef _ADD_SUB_H  9 #define _ADD_SUB_H
10 int add(int a, int b); 11 int sub(int a, int b); 12 #endif

Makefile的內容:

 我們可以把這個內容保存在文件為“Makefile”或“makefile”的文件中,然后在該目錄下直接輸入命令“make”,就會在當前目錄下找名字叫“Makefile”或“makefile”的文件,可以生成執行文件main。

 

 1 main: add.o sub.o main.o
 2       gcc add.o sub.o main.o -o main  
 3     
 4 add.o: add.c add_sub.h  
 5      gcc -c add.c -o add.o  
 6     
 7 sub.o: sub.c add_sub.h  
 8      gcc -c sub.c -o sub.o 
 9  
10 main.o:main.c add_sub.h
11      gcc -c main.c -o main.o
12 clean:       
13   rm -rf *.o main

 生成方法必須以TAB開頭;若嘗試用空格縮進會出現錯誤!

 實驗結果:

如果要刪除執行文件和所有的中間目標文件,那么,只要簡單地執行一下“make clean”就可以了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM