Linux makefile檔案的編寫

2021-09-24 02:30:08 字數 1986 閱讀 4686

/* main.c */

#include

"mytool1.h"

#include

"mytool2.h"

intmain

(int argc,

char

**ar**)

/* mytool1.h */

#ifndef _mytool_1_h

#define _mytool_1_h

void

mytool1_print

(char

*print_str)

;#endif

/* mytool2.h */

#ifndef _mytool_2_h

#define _mytool_2_h

void

mytool2_print

(char

*print_str)

;#endif

/* mytool1.c */

#include

"mytool1.h"

#include

void

mytool1_print

(char

*print_str)

/* mytool2.c */

#include

"mytool2.h"

#include

void

mytool2_print

(char

*print_str)

由於這個程式很短,我們可以這樣編譯:

$ gcc -c main.c -o main.o

$ gcc -c mytool1.c -o mytool1.o

$ gcc -c mytool2.c -o mytool2.o

$ gcc -o main main.o mytool1.o mytool2.o

但如果我們要重複修改檔案內容,難道要多次編譯?這個時候便產生了makefile來解決這個問題:

1、makefile 完整形式:

main:main.o mytool1.o mytool2.o

gcc -o main main.o mytool1.o mytool2.o

main.o:main.c mytool1.h mytool2.h

gcc -c main.c -o main.o

mytool1.o:mytool1.c mytool1.h

gcc -c mytool1.c -o mytool1.o

mytool2.o:mytool2.c mytool2.h

gcc -c mytool2.c -o mytool2.o

2、makefile 引數化簡形式:

main:main.o mytool1.o mytool2.o

gcc -o $@ $^

main.o:main.c mytool1.h mytool2.h

gcc -c $<

-o $@

mytool1.o:mytool1.c mytool1.h

gcc -c $<

-o $@

mytool2.o:mytool2.c mytool2.h

gcc -c $<

-o $@

3、makefile 預設化簡形式:

main:main.o mytool1.o mytool2.o

gcc -o $@ $^

..c.o:

gcc -c $<

4、執行makefile

$ make

linux makefile檔案分析

cflags wall wstrict prototypes g fomit frame pointer ffreestanding all crt0.s leds.c arm linux gcc cflags c o crt0.o crt0.s arm linux gcc cflags c o l...

linux makefile檔案心得筆記

經過長時間學習linux makefile檔案,我針對乙個簡單的例項進行了對linux makefile檔案的總結 於是和大家分享一下,看完本文你肯定有不少收穫,希望本文能教會你更多東西。sample makefile edit main.o kbd.o command.o display.o 第一...

linux makefile檔案管理工程

make在執行時,需要乙個命名為makefile的檔案.make廢了檔案描述了整個工程編譯,鏈結的規則.其中包括 工程中的哪些原始檔需要編譯以及如何編譯 需要建立哪些庫檔案以及如何建立這些庫檔案 如何最後產生我們想要得可執行檔案.這就是乙個規則 targets prerequisites comma...