《Linux程式設計》 開發工具

2021-06-26 03:35:44 字數 2787 閱讀 8714

一、多個原始檔帶來的問題

二、make命令和makefile

1、makefile的語法

1)、makefile檔案由一組依賴關係和規則組成。

2)、make命令會會根據makefile檔案來確定目標檔案的建立順序以及正確的規則呼叫順序。

2、make命令的選項和引數

1)、make程式選項

i、-k:讓make命令在發現錯誤時任然繼續執行,而不是在檢測到第乙個錯誤時就停下來。

ii、-n:讓make命令輸出將要執行的操作步驟,而不是真正執行這些操作。

iii、-f  :告訴make命令將那個檔案作為makefile檔案。

2)、為了指示make命令建立乙個特定的目標,可以把該目標的名字作為make命令額乙個引數。如果不這麼做,make命令將試圖建立列在makefile檔案中的第乙個目標。

3)、依賴關係

i、依賴關係定義了最終應用程式裡的每個檔案與原始檔之間的關係。

ii、makefile檔案規則:先寫目標的名稱。然後緊跟著乙個冒號,緊接著是空格或製表符tad,最後使用空格或製表符tab隔開的檔案列表。

4)、規則

3、makefile檔案中的注釋(馬克file檔案的注釋以#開頭,一直延續到這一行結束)

4、makefile檔案中的巨集

1)、通過語句macroname=value在makefile檔案中定義巨集,引用巨集的方法是使用$(macroname)或$。

2)、makefile檔案中的巨集常被用於設定編譯器的選項。

3)、常見的巨集列(p323  表9-1)

5、多個目標(p322-325**)

6、內建規則(p325-326**)

7、字尾和模式規則

1)、增加字尾名規則:首先需要在makefile檔案中增加一行語句,告訴make命令這個新的字尾名。然後既可以用這個新的字尾名來定義規則。

2)、kmake使用特殊語法:..:。

8、用make管理函式庫

1)、函式庫實際上就是檔案,它們通常以.a為字尾名,在該檔案中包含了一組目標檔案。

2)、用於管理函式庫的語法是lib(file.o),它的含義是目標檔案file.o是儲存在函式庫lib.a中的。make命令用乙個內建規則來管理函式庫,該規則的常見形式如下所示:

.c.a:

&(cc) -c  $(cflags)  $<

&(ar) -c  $(arflags)  $@  $*.o

i、第一條規則告訴它必須編譯原始檔以生成目標檔案。

ii、第二條規則告訴它用ar命令將新的目標檔案新增到函式庫中。

9、高階主題:makefile檔案和子目錄

1)、把構成幾個函式庫的檔案從主檔案中分離出來,並將它們儲存到乙個子目錄的方法

i、在子目錄中編寫第二個makefile檔案,它的作用是編譯該子目錄下的原始檔,並將它們儲存到乙個函式中,然後將該庫檔案複製到上一級的主目錄中。在主目錄中的

makefile檔案包含一條用於製作函式庫的規則,該規則會呼叫第二個makefile檔案如下所示:

mylib.a:

(cd  mylibdirectory;$(make))

ii、在原來的馬克file檔案中新增一些巨集。新新增的巨集通過在我們已見過的巨集的尾部追加乙個字母得到,字母d代表目錄,字母f代表檔名。然後你就可以用下面的規則來替

換內建的.c.o字尾規則:

.c.o:

$(cc)  $(cflags)  -c  $(@d)/$(這條規則的作用是:編譯子目錄中的原始檔並將目標檔案放置在該子目錄中。然後用如下到的依賴關係和規則來更新當前目錄下的函式庫:

mylib.a:  mydir/2.o  mydir/3.o

ar  -rv  mylib.a  $?

10、gnu make和gcc

三、源**控制

1、rcs(版本控制系統)

1)、rcs  能夠跟蹤並記錄下原始檔的每一次改動,並將這些改動都記錄在乙個檔案中,該檔案中記錄的改動資訊足夠詳細,你可以·通過這些資訊重建出任何乙個以前的版

本。2)、rcs命令:

i、rcs(初始化rcs控制檔案)

ii、ci(將原始檔的當前版本「簽入」到rcs中)

co  -l鎖住該檔案0。)

iv、rlog(檢視乙個檔案改動摘要)

v、rcsdiff(了解兩個版本之間的區別)

vi、版本標識(rcs系統可以在原始檔中使用一些特殊的字串(巨集)來幫助跟蹤檔案所做的改動。最常用的兩個巨集是$rcsfile$$id$。巨集$rcsfile$將擴充套件為該檔案的名

字,而$id$將擴充套件為乙個標識版本號的字串。)

vii、ident(查詢包含$id$字串的檔案的版本)

2、sccs(源**控制系統)

3、rcs和sccs的比較(p337  表9-2)

4、cvs(併發版本控制系統)

1)、cvs的本地使用(p337-p340例程)

2)、跨網路訪問cvs(p340)

5、cvs的前端程式(wincvs)

6、subversion

四、編寫手冊頁(p342-p345)

五、發行軟體(p345-p348)

六、rpm軟體包(p349-p258)

七、開發環境

1、kdevelop

2、其他開發環境(p360  表9-6)

Linux開發工具

linux開發工具 vim gcc gdb make git github 文字編輯器 vim 功能最強大 1 使用 三種模式 命令列模式 插入模式 底行模式 vim 空格 檔名 例如vim hello.c 此時是命令列模式 無法插入資料 需要進入插入模式 按i或者a 退出插入模式 按esc 切換到...

Linux程式設計01 開發工具和開發平台

rz和sz是linux同windows進行zmodem檔案傳輸的命令列工具。sz命令利用zmodem協議來從linux伺服器傳送檔案到本地,一次可以傳送乙個或者多個檔案 rz命令從本地上傳到linux伺服器。要使用rz和sz命令需要檢視是否 有lrzsz軟體包。如果沒有則需要利用yum進行安裝 快捷...

Linux開發工具 gcc

鏈結程式把所有物件檔案中的機器碼組合在一起,並解析它們之間的交叉引用。它還整合了物件模組所使用的庫函式的 這是鏈結程式的一種簡化表示,因為這裡假定在可執行模組中,模組之間的所有鏈結都是靜態建立的。實際上有些鏈結是動態的,即這些鏈結是在程式執行時建立的。鏈結就是鏈結器ld將各個目標檔案組裝在一起,解決...