轉(zhuǎn)帖|使用教程|編輯:況魚杰|2020-11-09 10:41:49.247|閱讀 491 次
概述:本文介紹了PC-lint Plus的使用方法:GNU?Make的介紹。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
PC-lint Plus是一種靜態(tài)分析工具,通過分析C和C ++源代碼來發(fā)現(xiàn)軟件中的缺陷。與編譯器一樣,PC-lint Plus會(huì)解析源代碼文件,執(zhí)行語義分析,并構(gòu)建一個(gè)抽象語法樹來表示程序。PC-lint Plus采用各種機(jī)制,包括數(shù)據(jù)流分析,數(shù)值跟蹤,讀寫分析,強(qiáng)類型檢查,功能語義驗(yàn)證和許多其他技術(shù),來提供對(duì)單個(gè)文件和整個(gè)項(xiàng)目強(qiáng)大而全面的分析。
本文介紹了PC-lint Plus的使用方法:GNU?Make的介紹。
在大型的開發(fā)項(xiàng)目中,通常有幾十到上百個(gè)的源文件,如果每次均手工鍵入?gcc?命令進(jìn)行編譯的話,則會(huì)非常不方便。因此,人們通常利用?make?工具來自動(dòng)完成編譯工作。這些工作包括:如果僅修改了某幾個(gè)源文件,則只重新編譯這幾個(gè)源文件;如果某個(gè)頭文件被修改了,則重新編譯所有包含該頭文件的源文件。利用這種自動(dòng)編譯可大大簡(jiǎn)化開發(fā)工作,避免不必要的重新編譯。
實(shí)際上,make工具通過一個(gè)稱為?makefile的文件來完成并自動(dòng)維護(hù)編譯工作。makefile需要按照某種語法進(jìn)行編寫,其中說明了如何編譯各個(gè)源文件并連接生成可執(zhí)行文件,并定義了源文件之間的依賴關(guān)系。(makefile介紹)
當(dāng)修改了其中某個(gè)源文件時(shí),如果其他源文件依賴于該文件,則也要重新編譯所有依賴該文件的源文件。
makefile文件是許多編譯器,包括?Windows?NT?下的編譯器維護(hù)編譯信息的常用方法,只是在集成開發(fā)環(huán)境中,用戶通過友好的界面修改?makefile?文件而已。
默認(rèn)情況下,GNU?make?工具在當(dāng)前工作目錄中按如下順序搜索?makefile:
在UNIX系統(tǒng)中,習(xí)慣使用Makefile作為makfile文件。如果要使用其他文件作為makefile,則可利用類似下面的make命令選項(xiàng)指定makefile文件:?$?make?-f?Makefile.debug
GNU?make的主要預(yù)定義變量
GNU?make有許多預(yù)定義的變量,這些變量具有特殊的含義,可在規(guī)則中使用。表?1-5?給出了一些主要的預(yù)定義變量,除這些變量外,GNU?make還將所有的環(huán)境變量作為自己的預(yù)定義變量。
預(yù)定義變量
含義
$*
不包含擴(kuò)展名的目標(biāo)文件名稱
$+
所有的依賴文件,以空格分開,并以出現(xiàn)的先后為序,可能包含重復(fù)的依賴文件
$<
第一個(gè)依賴文件的名稱
$?
所有的依賴文件,以空格分開,這些依賴文件的修改日期比目標(biāo)的創(chuàng)建日期晚
$@
目標(biāo)的完整名稱
$^
所有的依賴文件,以空格分開,不包含重復(fù)的依賴文件
$%
如果目標(biāo)是歸檔成員,則該變量表示目標(biāo)的歸檔成員名稱。例如,如果目標(biāo)名稱為?mytarget.so(image.o),則?$@?為?mytarget.so,而?$%?為?image.o
AR
歸檔維護(hù)程序的名稱,默認(rèn)值為?ar
ARFLAGS
歸檔維護(hù)程序的選項(xiàng)
AS
匯編程序的名稱,默認(rèn)值為?as
ASFLAGS
匯編程序的選項(xiàng)
CC
C?編譯器的名稱,默認(rèn)值為?cc
CFLAGS
C?編譯器的選項(xiàng)
CPP
C?預(yù)編譯器的名稱,默認(rèn)值為?$(CC)?-E
CPPFLAGS
C?預(yù)編譯的選項(xiàng)
CXX
C++?編譯器的名稱,默認(rèn)值為?g++
CXXFLAGS
C++?編譯器的選項(xiàng)
FC
FORTRAN?編譯器的名稱,默認(rèn)值為?f77
FFLAGS
FORTRAN?編譯器的選項(xiàng)
隱含規(guī)則
GNU?make?包含有一些內(nèi)置的或隱含的規(guī)則,這些規(guī)則定義了如何從不同的依賴文件建立特定類型的目標(biāo)。
GNU?make?支持兩種類型的隱含規(guī)則:
*?后綴規(guī)則(Suffix?Rule)。后綴規(guī)則是定義隱含規(guī)則的老風(fēng)格方法。后綴規(guī)則定義了將一個(gè)具有某個(gè)后綴的文件(例如,.c?文件)轉(zhuǎn)換為具有另外一種后綴的文件(例如,.o?文件)的方法。每個(gè)后綴規(guī)則以兩個(gè)成對(duì)出現(xiàn)的后綴名定義,例如,將?.c?文件轉(zhuǎn)換為?.o?文件的后綴規(guī)則可定義為:
.c.o:?$(CC)?$(CFLAGS)?$(CPPFLAGS)?-c?-o?$@?$<
*?模式規(guī)則(pattern?rules)。這種規(guī)則更加通用,因?yàn)榭梢岳媚J揭?guī)則定義更加復(fù)雜的依賴性規(guī)則。模式規(guī)則看起來非常類似于正則規(guī)則,但在目標(biāo)名稱的前面多了一個(gè)?%?號(hào),同時(shí)可用來定義目標(biāo)和依賴文件之間的關(guān)系,例如下面的模式規(guī)則定義了如何將任意一個(gè)?X.c?文件轉(zhuǎn)換為?X.o?文件:
%.c:%.o?$(CC)?$(CFLAGS)?$(CPPFLAGS)?-c?-o?$@?$<
本文內(nèi)容就是這樣了,希望對(duì)您有所幫助!您可以繼續(xù)關(guān)注我們慧都網(wǎng),了解更多產(chǎn)品資訊~也可以下載PC-lint Plus試用版免費(fèi)評(píng)估~
相關(guān)內(nèi)容推薦:
PC-lint Plus v1.3.5更新內(nèi)容>>>
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn