簡(jiǎn)單帶子目錄的makefile練習(xí)
Posted on 2012-01-10 21:18 幻海藍(lán)夢(mèng) 閱讀(1693) 評(píng)論(1) 編輯 收藏 所屬分類: Linux 、配置管理 、Shell 開始學(xué)linux。我練習(xí)寫的第一個(gè)帶子目錄的makefile文件。
1。建立文件夾 wulong
wulong中含 三個(gè)文件夾 include source pro 和makefile文件。
include 中包含 hai.h頭文件。
source 中包含 hello.c文件。
pro 中包含 haia.c haib.c文件。
makefile文件內(nèi)容有兩種寫法:
makefile 第一種寫法:
?。?br /> CC=gcc #選擇編譯器類型為gcc
VPATH= include : pr : source #列明文件存放目錄
hello: hello.o haia.o haib.o
$(CC) -o hello hello.o haia.o haib.o
hello.o:hello.c hai.h
$(CC) -c hello.c
haia.o: haia.c hai.h
$(CC) -c haia.c
haib.o: haib.c hai.h
$(CC) -c haib.c
.PHONY: clean
clean:
rm hello $(obj)
?。?br />
makefile第二種寫法(簡(jiǎn)化版):
//********************************
CC=gcc #選擇編譯種類
VPATH= include : pr : source #在include pr source 三目錄下查找文件
obj= hello.o haia.o haib.o #
hello:$(obj) #
$(CC) -o hello $(obj)
$(obj): hai.h
.PHONY: clean
clean:
rm hello $(obj)
//**********************************
hai.h文件內(nèi)容為:
?。?br /> #include "stdio.h"
extern void haiprinta();
extern void haiprintb();
?。?br />
hello.c內(nèi)容為:
?。?br /> #include "../include/hai.h"
int main(void)
{
haiprinta();
haiprintb();
return 0;
}
//**************
haia.c內(nèi)容為:
?。?br /> #include "../include/hai.h"
void haiprinta()
{
printf("hai aaaaaaaaaa\n");
}
?。?br />
haib.c內(nèi)容為:
//**************
#include "../include/hai.h"
void haiprintb()
{
printf("haib bbbbbbbbbbbbbb\n");
}
//*******************
2。make 調(diào)用makefile生成 可執(zhí)行文件 hello
3. 運(yùn)行 hello顯示打印結(jié)果:
[HAI@localhost wulong]$ ./hello
hai aaaaaaaaaa
haib bbbbbbbbbbbbbb
[HAI@localhost wulong]$
到此結(jié)束,恭喜!
1。建立文件夾 wulong
wulong中含 三個(gè)文件夾 include source pro 和makefile文件。
include 中包含 hai.h頭文件。
source 中包含 hello.c文件。
pro 中包含 haia.c haib.c文件。
makefile文件內(nèi)容有兩種寫法:
makefile 第一種寫法:
?。?br /> CC=gcc #選擇編譯器類型為gcc
VPATH= include : pr : source #列明文件存放目錄
hello: hello.o haia.o haib.o
$(CC) -o hello hello.o haia.o haib.o
hello.o:hello.c hai.h
$(CC) -c hello.c
haia.o: haia.c hai.h
$(CC) -c haia.c
haib.o: haib.c hai.h
$(CC) -c haib.c
.PHONY: clean
clean:
rm hello $(obj)
?。?br />
makefile第二種寫法(簡(jiǎn)化版):
//********************************
CC=gcc #選擇編譯種類
VPATH= include : pr : source #在include pr source 三目錄下查找文件
obj= hello.o haia.o haib.o #
hello:$(obj) #
$(CC) -o hello $(obj)
$(obj): hai.h
.PHONY: clean
clean:
rm hello $(obj)
//**********************************
hai.h文件內(nèi)容為:
?。?br /> #include "stdio.h"
extern void haiprinta();
extern void haiprintb();
?。?br />
hello.c內(nèi)容為:
?。?br /> #include "../include/hai.h"
int main(void)
{
haiprinta();
haiprintb();
return 0;
}
//**************
haia.c內(nèi)容為:
?。?br /> #include "../include/hai.h"
void haiprinta()
{
printf("hai aaaaaaaaaa\n");
}
?。?br />
haib.c內(nèi)容為:
//**************
#include "../include/hai.h"
void haiprintb()
{
printf("haib bbbbbbbbbbbbbb\n");
}
//*******************
2。make 調(diào)用makefile生成 可執(zhí)行文件 hello
3. 運(yùn)行 hello顯示打印結(jié)果:
[HAI@localhost wulong]$ ./hello
hai aaaaaaaaaa
haib bbbbbbbbbbbbbb
[HAI@localhost wulong]$
到此結(jié)束,恭喜!
原文:
http://blog.tianya.cn/blogger/post_show.asp?BlogID=2058037&PostID=17326631