當前位置:首頁 » 編程軟體 » 腳本及makefile

腳本及makefile

發布時間: 2022-06-03 13:37:09

⑴ makefile 文件詳細介紹

makefile文件主要有以下五種組成部分。顯式規則:顯式規則說明了生成一個或多個目標文件的方法和步驟。這是在編寫makefile文件時明顯指出的,包括要生成的文件、生成文件的依賴文件以及生成的命令等。隱式規則:由於make工具有自動推導的功能,所以在編寫makefile文件的時候可以利用該規則,簡略地書寫makefile。再由 make 工具本身自動推導需要使用的規則。變數的定義: make工具支持變數的定義,這些變數往往都是字元串,因此makefile中的變數更像是C語言中的宏。當makefile被執行時,其中的變數都會被展開到相應的引用位置上。文件指示:其包括三個部分,一個是在一個makefile中引用另一個makefile,就像C語言中的include一樣。另一個是指根據某些情況指定makefile中的有效部分,就像C語言中的預編譯tlif一樣。還有就是定義一個多行的命令。注釋: makefile 中支持行注釋,這一點需要特別注意。makefile 中的注釋和 shell腳本一樣,其注釋是用「#」字元。如果需要在 makefile中使用「#」字元,可以用『\』對其進行轉義。例如,「\#」表示一個『#』字元。makefile文件的文件名最好命名為makefile或者Makefile。因為在默認的情況下,make命令會在當前目錄下按順序找尋這兩個文件進行解釋。用戶也可以為makefile文件自定義一個文件名,例如,Make.makefile,Make.admin等。

⑵ make,makefile和腳本之間什麼關系makefile是一種腳本嗎

這里簡單說一下,更多細節可以去找一些深入的材料去了解。

make一般主要被用來管理一個軟體程序項目(用來完成大型軟體的自動編譯),但是它不僅僅可以用來管理軟體程序,還可以做很多其他的事情,比如文件同步等。

makefile是被make使用的「描述」文件,它描述要被make所管理的項目中的文件間的關系(比如對於一個C程序項目來說,.h文件和.c文件之間的關系,.c和.o之間的關系等),和如何維護這個項目的狀態(比如對於一個程序項目來說,就有編譯可執行文件,產生文檔,清除所有除源代碼文件之外的文件等).

腳本是和make/makefile沒有任何關系的,就是一種編程語言,一般都是解釋型的編程語言,好處是容易開發,寫完就能用,不需要編譯,多用於系統維護等。

linux基礎中,shell腳本和makefile文件的差別是什麼啊,求詳細點嘛

你可以認為makefile是shell腳本「派生」出來的。最樸素的makefile可以完全通過gcc等語句實現,在這種情況下也就是shell腳本了。但是為了方便,makefile引入了大量的語法用來使編譯鏈接變得簡單,所以和shell腳本還是不同的。
可以參考:http://apps.hi..com/share/detail/31232485

⑷ makefile 文件介紹

makefile文件主要有以下五種組成部分。顯式規則:顯式規則說明了生成一個或多個目標文件的方法和步驟。這是在編寫makefile文件時明顯指出的,包括要生成的文件、生成文件的依賴文件以及生成的命令等。隱式規則:由於make工具有自動推導的功能,所以在編寫makefile文件的時候可以利用該規則,簡略地書寫makefile。再由 make 工具本身自動推導需要使用的規則。變數的定義: make工具支持變數的定義,這些變數往往都是字元串,因此makefile中的變數更像是C語言中的宏。當makefile被執行時,其中的變數都會被展開到相應的引用位置上。
文件指示:其包括三個部分,一個是在一個makefile中引用另一個makefile,就像C語言中的include一樣。另一個是指根據某些情況指定makefile中的有效部分,就像C語言中的預編譯tlif一樣。還有就是定義一個多行的命令。
注釋: makefile 中支持行注釋,這一點需要特別注意。makefile 中的注釋和 shell腳本一樣,其注釋是用「#」字元。如果需要在 makefile中使用「#」字元,可以用『\』對其進行轉義。例如,「\#」表示一個『#』字元。makefile文件的文件名最好命名為makefile或者Makefile。因為在默認的情況下,make命令會在當前目錄下按順序找尋這兩個文件進行解釋。用戶也可以為makefile文件自定義一個文件名,例如,Make.makefile,Make.admin等。

⑸ Linux的makefile中有連接腳本和沒連接腳本的區別

在Makefile可以調用shell腳本,但是Makefile和shell腳本是不同的。本文試著歸納一下Makefile和shell腳本的不同。
1、
shell中所有引用以$打頭的變數其後要加{},而在Makefile中的變數是以$打頭的後加()。實例如下:
Makefile
PATH="/data/"
SUBPATH=$(PATH)
Shell
PATH="/data/"
SUBPATH=${PATH}
2、Makefile中所有以$打頭的單詞都會被解釋成Makefile中的變數。如果你需要調用shell中的變數(或者正則表達式中錨定句位$),都需要加兩個$符號($$)。實例如下:
PATH="/data/"
all:
echo
${PATH}
echo
$$PATH例子中的第一個${PATH}引用的是Makefile中的變數,而不是shell中的PATH環境變數,後者引用的事Shell中的PATH環境變數。
3、通配符區別
shell
中通配符*表示所有的字元
Makefile
中通配符%表示所有的字元
4、在Makefile中只能在target中調用Shell腳本,其他地方是不能輸出的。比如如下代碼就是沒有任何輸出:
VAR="Hello"
echo
"$VAR"
all:
.....以上代碼任何時候都不會輸出,沒有在target內,如果上述代碼改為如下:
VAR="Hello"
all:
echo
"$VAR"
.....以上代碼,在make
all的時候將會執行echo命令。
5、在Makefile中執行shell命令,一行創建一個進程來執行。這也是為什麼很多Makefile中有很多行的末尾都是「;
\」,以此來保證代碼是一行而不是多行,這樣Makefile可以在一個進程中執行,例如:
SUBDIR=src
example
all:
@for
subdir
in
$(SUBDIR);
\
do\
echo
"building
";
\
done上述可以看出for循環中每行都是以」;
\」結尾的。
6、獲取當前目錄
PATH=`pwd`
注意是``,不是''
推薦你看或者linux就該這么學,具體關於這一章地址3w(dot)linuxprobe(dot)com.

⑹ makefile到底是干什麼用的

一個工程(project)中的源文件不計其數,其按類型、功能、模塊分別放在若干個目錄中,makefile定義了一系列的規則來指定,哪些文件需要先編譯,哪些文件需要後編譯,哪些文件需要重新編譯,甚至於進行更復雜的功能操作,因為 makefile就像一個Shell腳本一樣,其中也可以執行操作系統的命令。

Makefile 文件描述了整個工程的編譯、連接等規則。其中包括:工程中的哪些源文件需要編譯以及如何編譯、需要創建那些庫文件以及如何創建這些庫文件、如何最後產生我們想要的可執行文件。盡管看起來可能是很復雜的事情,但是為工程編寫Makefile 的好處是能夠使用一行命令來完成「自動化編譯」,一旦提供一個(通常對於一個工程來說會是多個)正確的
Makefile。編譯整個工程你所要做的唯一的一件事就是在shell 提示符下輸入make命令。整個工程完全自動編譯,極大提高了效率。

如果你使用的是帶有圖形用戶界面的集成化開發環境如VisualStudio,一般用不著手動編寫makefile文件,當你需要時,VS可以為你自動生成。

⑺ linux裡面的make和makefile是做什麼的

1、make:是一個非常重要的編譯命令,本質上它是一個程序。利用make工具,可以將大型的開發項目分解成為多個更易於管理的模塊,對於一個包括幾百個源文件的應用程序,使用make和makefile工具就可以簡潔明快地理順各個源文件之間紛繁復雜的相互關系。而且如此多的源文件,如果每次都要鍵入gcc命令進行編譯的話,那對程序員來說簡直就是一場災難。而make工具則可自動完成編譯工作,並且可以只對程序員在上次編譯後修改過的部分進行編譯。

2、Makefile文件 :Make工具最主要也是最基本的功能就是通過makefile文件來描述源程序之間的相互關系並自動維護編譯工作,本質上makefile文件是個文本文件,用於配置編譯過程。makefile 文件需要按照某種語法進行編寫,文件中需要說明如何編譯各個源文件並連接生成可執行文件,並要求定義源文件之間的依賴關系。makefile 文件是許多編譯器--包括 Windows NT 下的編譯器--維護編譯信息的常用方法,只是在集成開發環境中,用戶通過友好的界面修改 makefile 文件而已。

3、在 UNIX 系統中,習慣使用 Makefile 作為 makfile 文件。如果要使用其他文件作為 makefile,則可利用類似下面的 make 命令選項指定 makefile 文件:

$ make -f Makefile.debug

例如,一個名為prog的程序由三個C源文件filea.c、fileb.c和filec.c以及庫文件LS編譯生成,這三個文件還分別包含自己的頭文件a.h 、b.h和c.h。通常情況下,C編譯器將會輸出三個目標文件filea.o、fileb.o和filec.o。假設filea.c和fileb.c都要聲明用到一個名為defs的文件,但filec.c不用。即在filea.c和fileb.c里都有這樣的聲明:
#include "defs"
那麼下面的文檔就描述了這些文件之間的相互聯系:
#It is a example for describing makefile
prog : filea.o fileb.o filec.o
cc filea.o fileb.o filec.o -LS -o prog
filea.o : filea.c a.h defs
cc -c filea.c
fileb.o : fileb.c b.h defs
cc -c fileb.c
filec.o : filec.c c.h
cc -c filec.c
這個描述文檔就是一個簡單的makefile文件。

熱點內容
gdb調試文件夾 發布:2024-05-07 04:03:25 瀏覽:153
玩5款大型游戲需要什麼配置 發布:2024-05-07 03:59:09 瀏覽:89
什麼安卓游戲畫面炫酷 發布:2024-05-07 03:58:18 瀏覽:73
無錫五洋賽德壓縮機有限公司 發布:2024-05-07 03:28:05 瀏覽:152
安卓手機如何打開qrs 發布:2024-05-07 03:18:31 瀏覽:466
c語言給數組排序 發布:2024-05-07 03:18:30 瀏覽:76
職工個人所得稅登錄密碼是多少 發布:2024-05-07 03:14:22 瀏覽:707
編譯程序組成部分 發布:2024-05-07 03:02:07 瀏覽:97
伺服器怎麼做雙機 發布:2024-05-07 02:37:25 瀏覽:36
ftp剪切 發布:2024-05-07 02:37:14 瀏覽:138