makefile定義了一系列的規(guī)則來指定凌埂,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯痕届,甚至于進行更復(fù)雜的功能操作,因為 makefile就像一個Shell腳本一樣寺旺,其中也可以執(zhí)行操作系統(tǒng)的命令
先先看一下什么是makefile
makefile定義了一系列的規(guī)則來指定爷抓,哪些文件需要先編譯,哪些文件需要后編譯阻塑,哪些文件需要重新編譯蓝撇,甚至于進行更復(fù)雜的功能操作,因為 makefile就像一個Shell腳本一樣陈莽,其中也可以執(zhí)行操作系統(tǒng)的命令渤昌。
makefile帶來的好處就是--“自動化編譯”,一旦寫好,只需要一個make命令走搁,整個工程完全自動編譯独柑,極大的提高了軟件開發(fā)的效率。make是一個命令工具私植,是一個解釋makefile中指令的命令工具忌栅,一般來說棋返,大多數(shù)的IDE都有這個命令男摧,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make.可見,makefile都成為了一種在工程方面的編譯方法漠其。
注IDE:集成開發(fā)環(huán)境(IDE贫悄,Integrated Development Environment )是用于提供程序開發(fā)環(huán)境的應(yīng)用程序瑞驱,一般包括代碼編輯器、編譯器窄坦、調(diào)試器和圖形用戶界面工具唤反。集成了代碼編寫功能凳寺、分析功能、編譯功能彤侍、調(diào)試功能等一體化的開發(fā)軟件服務(wù)套肠缨。所有具備這一特性的軟件或者軟件套(組)都可以叫集成開發(fā)環(huán)境。如微軟的Visual Studio系列拥刻,Borland的C++ Builder怜瞒、Delphi系列等。該程序可以獨立運行般哼,也可以和其它程序并用吴汪。IDE多被用于開發(fā)HTML應(yīng)用軟件。例如蒸眠,許多人在設(shè)計網(wǎng)站時使用IDE(如HomeSite漾橙、DreamWeaver等),因為很多項任務(wù)會自動生成楞卡。
make
根據(jù)Makefile文件編譯源代碼霜运、連接、生成目標文件蒋腮、可執(zhí)行文件淘捡。
make clean
清除上次的make命令所產(chǎn)生的object文件(后綴為“.o”的文件)及可執(zhí)行文件。
make install
將編譯成功的可執(zhí)行文件安裝到系統(tǒng)目錄中池摧,一般為/usr/local/bin目錄焦除。
make dist
產(chǎn)生發(fā)布軟件包文件(即distribution package)。這個命令將會將可執(zhí)行文件及相關(guān)文件打包成一個tar.gz壓縮的文件用來作為發(fā)布軟件的軟件包作彤。
它會在當前目錄下生成一個名字類似“PACKAGE-VERSION.tar.gz”的文件膘魄。PACKAGE和VERSION,是我們在configure.in中定義的AM_INIT_AUTOMAKE(PACKAGE, VERSION)。
make distcheck
生成發(fā)布軟件包并對其進行測試檢查竭讳,以確定發(fā)布包的正確性创葡。這個操作將自動把壓縮包文件解開,然后執(zhí)行configure命令绢慢,并且執(zhí)行make,來確認編譯不出現(xiàn)錯誤灿渴,最后提示你軟件包已經(jīng)準備好,可以發(fā)布了胰舆。
make distclean
類似make clean,但同時也將configure生成的文件全部刪除掉逻杖,包括Makefile文件。
建立頭文件:stu.h
注:在C語言家族程序中思瘟,頭文件被大量使用。一般而言闻伶,每個C++/C程序通常由頭文件(header files)和定義文件(definition files)組成滨攻。頭文件作為一種包含功能函數(shù)、數(shù)據(jù)接口聲明的載體文件,主要用于保存程序的聲明(declaration)光绕,而定義文件用于保存程序的實現(xiàn) (implementation)女嘲。 .c就是你寫的程序文件。
建立定義文件:stu.c
主程序:main.c(這里的例子是2.c)
makefile文件:
注:.o 就是object, 也就相當于windows下編譯的obj文件, 俗稱目標文件
是指源代碼經(jīng)過編譯程序產(chǎn)生的能被cpu直接識別二進制代碼诞帐。由編譯器生成欣尼,
具體的生成方法在不同的開發(fā)環(huán)境上是不同的.
百度百科說.o文件是對象文件
里面包含的內(nèi)容就是01這樣的機器可執(zhí)行的執(zhí)令
當你程序要執(zhí)行時還需要進行鏈接(link).
連接程序再將這個文件與系統(tǒng)庫文件連接就生成可執(zhí)行文件
就是把多個.o文件鏈成一個可執(zhí)行文件。