Makefile文件詳解一(怎麼在Windows下使用Makefile文件)

前言:如果熟悉在Linux開發的話,肯定知道Makefile文件的用處,它給我們帶來很多的便利。在Linux系統下並不會像Windows那麼多開發工具,在Windows下,只要在開發工具上點擊一個按鈕,就能將工程的所有源碼進行編譯運行。而在Linux下,工程源文件的編寫往往是使用一個簡單的編輯器(VIM),然後通過Makefile文件進行自動化編譯。而我接下來想說的是,如何在Windows上如同Linux般使用Makefile文件進行編譯。可能有人覺得沒那個必要,因爲Windows的開發工具數不勝數,隨便一個都非常好用,不可否認,懂得利用開發工具開發是可大大提高開發效率。當然,接下我是從基礎的知識出發,不僅僅是對Makefile文件的學習,從中還可幫你解開以往的一些疑惑,或者讓你學習到一些新的有趣的知識。

1.搭建環境

1.gcc編譯器下載,TDM-GCC,打開根據自己電腦的類型選擇合適的程序,我的是win7/32bit,所以選擇下載第一個:

2.下載完成後,以管理員方式打開安裝程序,點擊Create後:

3.選擇相應的版本,點擊Next,接下來會選擇安裝路徑,自己隨便選擇一個不帶中文的路徑就行。

4.最後點擊Install進行安裝,安裝完成後,可以在自己設置的安裝路徑下有這麼一個文件夾“TDM-GCC-32”,接下來配置環境變量。打開控制面板 > 系統和安全  > 系統 >高級系統設置  > 環境變量:

添加系統變量,變量值是自己剛剛選擇的安裝路徑,我安裝在C盤,如下圖:

找到變量Path,在後面加入 “;%GCC_PATH%\bin”,如圖:

點擊確定保存設置。

5.點擊電腦桌面左下角,搜索cmd,以管理員身份打開cmd.exe,輸入“gcc -v”:

得到如上輸出可確認gcc編譯器已正確安裝,版本是5.1.0。

6.繼續輸入“mingw32-make -v”:

相對於Linux的make不同,這裏是mingw32-make,在cmd裏用cd命令切換在Makeflie文件所在目錄,命令行輸入mingw32-make回車運行,就行執行Makefile文件,進行自動化編譯。

2.執行一個簡單的Makefile文件:

1.將下面各個文件保存在同一目錄下:

"src_a.c"
#include "stdio.h"
void funca()
{
	printf("funca runing!!!\r\n");
}

"src_b.c"
#include "stdio.h"
void funcb()
{
	printf("funcb runing!!!\r\n");
}

"src_c.c"
#include "stdio.h"
void funcc()
{
	printf("funcc runing!!!\r\n");
}

"main.c"
#include "stdio.h"
extern void funca();
extern void funcb();
extern void funcc();
int main()
{
	funca();
	funcb();
	funcc();
}

"Makefile"
mian : main.o  src_a.o src_b.o  src_c.o
	gcc main.o src_a.o src_b.o src_c.o -o main

main.o : main.c
	gcc main.c -c -o main.o

src_a.o : src_a.c
	gcc src_a.c -c -o src_a.o

src_b.o : src_b.c
	gcc src_b.c -c -o src_b.o

src_c.o : src_c.c
	gcc src_c.c -c -o src_c.o


.PHONY : clean
clean:
	del *.o main.exe -rf

Makefile可以暫時不用理解,這裏只是一個簡單通俗的例子。

所有文件創建完成如下:

2.打開cmd,切換到以上的目錄,輸入“mingw32-make”:

得到main.exe可執行文件,輸入main.exe回車運行:

然後在資源管理器裏查看Test目錄會發現多了一些編譯的過程文件(.o):

cmd輸入命令“”mingw32-make clean”,將輸出文件刪除:

到此,我可以在Windows下利用CMD命令通過Makefile對源文件進行編譯運行了。

環境搭建好了之後,再從學習gcc命令開始,才能逐步理解Makefile文件。

 

 

推薦閱讀:Makefile文件詳解一(gcc命令參數詳解)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章