git gdb makefile等工具使用

2021-08-20 15:10:59 字數 2556 閱讀 2676

版本控制系統:cvs、svn均是集中式的版本控制系統,而git是分不式版本控制系統

集中式版本控制系統:版本庫是集中存放在**伺服器的,工作時客戶端先連到伺服器,取出最新的檔案或者提交最新

分不式版本控制系統:每個人電腦都有完整的版本庫

本地建立乙個目錄,在該目錄下,git init , 就會在該目錄下建立乙個git版本倉庫。

git  config  --global  user.nme  "name1"

git  config  -- global  user.email  "mailaddress1"

git status  檢視倉庫中的狀態

git   add filename   將檔案新增到快取區

git   rm    --cached  filename1 將檔案從快取區移除

使用 git   commit    提交以後,快取區將被清空  -m "label"  (引數m是打標籤)

將本地倉庫管理到遠端伺服器可以使用   git   remote   add    hostname   url

如果本地的倉庫連線到了遠端git伺服器,使用  git   push  hostname   master  會將本地倉庫同步到遠端伺服器

git  branch  branch_name  建立開發分支 (在很多組協同完成乙個任務時,分支不會影響主線。當分支完成後再與主線合併)

git  branch  檢視所有分支,並標明當前在哪個分支(*號標明)。

gti  checkout   branch_name  切換分支    : 在分支下修改某個檔案內容後, 新增到快取區,提交,在該分支下可以看到改變,但是切換到其它分支後,將看不到改變後的內容。

要將兩個不同分支合併(即同步)  git  merge   branch_name1  將分支1與master合併。

當合併後不需要分支時, git  branch  -d  branch_name1  (只能刪除已經完全合併了的分支)

要強制刪除某個分支時, 使用  git branch -d  branch_name1 

要恢復到初始未修改狀態 。    git   reset   --hard   head^

git  log  顯示所有的提交日誌資訊

/            gdb使用            /

使用gcc編譯時加 -g  即可使用 gdb 除錯工具。

進行除錯:  gdb   可執行檔名

run  執行程式;   list 列出程式**;  b(break)  line_num   打斷點;   b  function_name  函式開始執行時打斷點

n(next)執行下一行   s(step)一次執行一次   finish  執行到函式結束   c(continue)執行到函式結束  info b   顯示斷點資訊    u(until) 執行到指定行

makefile           /

makefile的意義:1 在使用gcc編譯時,大專案往往需要寫大量的檔名   2   當專案中的某個檔案修改後,只需重新連線即可。(所以分析依賴關係,避免不必要的編譯過程)

句法規則:     目標 : 依賴

tab      command  ;   

一般 變數名採用大寫方式。 (目標檔案列表採用小寫)

make  -f   makefile_name  指定makefile的檔名

?=  條件賦值, 只有在沒有對變數進行賦值的情況下才會對這個變數進行賦值。

$@  --代表規則中的目標檔名; $<   --代表規則的第乙個依賴的檔名;  $^   --代表規則中所有依賴檔案的列表,檔名用空格分割

偽目標:  當專案編譯玩抽,會有可執行檔案及中間目標檔案,有時需要將編譯生成的檔案都刪除,讓整個專案回到最初的狀態。則可在專案makefile定義新增一條目標為clean的規則

eg ,                           clean :

tab    rm    -rf    test1.o  test2.o  test 

一般情況下make clean會正常工作,但當當前目錄下有乙個clean檔案時將會出現問題(提示 clean已經是最新的),所以就衍生出了偽目標,表示它不代表乙個真正的檔名。 宣告偽目標:

eg,                            .phony: clean

clean :

tab     rm   -rf  test1.o test2.o  test 

makefile中命令通常都會回顯(即在將命令輸出),在命令前加@可關閉回顯

%為makefile檔案的萬用字元 。  * 為 shell可識別的萬用字元。

wildcard函式 source := $(wildcard  pattern) 列出當前目錄下所有符合模式「patterm」格式的檔名

deps := $(source:.c=.d)變數的引用替換。  將所有.c 替換為.d    (:=是表示賦值時覆蓋之前的值)

sinclude $(deps)匯入依賴關係檔案

$(deps):%.d:%.c     生成依賴關係

tab    gcc  -mm  $<  >  $@

「等燈 等燈等燈」, 和 的區別

小記錄。是相等操作符,是全等操作符 的判斷標準為兩個運算元相等則返回true,的判斷標誌是兩個運算元未經轉換就相等則返回true 相等操作符的轉換規則 如果有乙個運算元是布林值,則在比較相等性之前先將其轉換為數值,false轉換為0,而true轉換為1 乙個運算元是字串,另乙個運算元是數值,則在比較...

等保03 等保測評

差分整改 重點 等級測評 等保專案交付存在的問題 等級保護工作角色分工 等級保護整體流程介紹 各個階段產出的文件 定級備案過程及工作內容 依據定級指南確定目標系統的安全保護等級,同時也是對安全保護等級確定過程的說明。1.目標業務系統描述 系統的基本功能 系統的責任部門 系統的網路結構及部署情況 採取...

等專案通知????????????????

自從五一回來,我的小球基本竣工了,工作的緊張度明顯降低了。程式編的沒有任務緊張時候認真了,不過這兩天有所調整,態度上有點起色。五一回來的任務就是把小球給改好。最主要的傘個方面,乙個是記憶體洩露,乙個是俯角和仰角,乙個是消除鍵盤控制的卡殼。磨磨唧唧地改了一周多,總算都改完了。記憶體洩露發現是有個地方n...