Posted on 2012-01-10 21:18
幻海藍(lán)夢 閱讀(1689)
評論(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 第一種寫法:
//*********************
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)
//*************************
makefile第二種寫法(簡化版):
//********************************
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)容為:
//************************
#include "stdio.h"
extern void haiprinta();
extern void haiprintb();
//****************
hello.c內(nèi)容為:
//****************
#include "../include/hai.h"
int main(void)
{
haiprinta();
haiprintb();
return 0;
}
//**************
haia.c內(nèi)容為:
//************
#include "../include/hai.h"
void haiprinta()
{
printf("hai aaaaaaaaaa\n");
}
//**************
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