Linux項目管理方法(makefile)及gdb的使用

學習日誌                  姓名:葉聖民      日期:2018年7月11日

 

 

 

 

 

 今日學習任務

 

1、瞭解項目管理的方法及重要性;(項目代碼目錄結構)

2、熟練掌握 makefile 基本語法的使用;(目標、依賴、命令)

3、企業級 makefile 的編寫;(迭代開發)

4、瞭解 git/github 的使用;(學會管理代碼)                                                                     5、瞭解調試器 gdb;(基本調試操作,段錯誤如何調試)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

今日任務完成情況

 

(詳細說明本日任務是否按計劃完成,開發的代碼量)

 

1、gdb 的特點有哪些?

         gdb (調試器)是Linux GNU計劃的工具。

         (1)啓動被調試程序;

         (2)讓被調試程序運行;

         (3)查看變量值;

         例:調試:gcc -g text.c -o text

                gdb text

                list(反編譯);break(斷點);

2、分別闡述 run break info break continue finish 命令的作用?

        run(執行完程序)先break n 後run(運行時在第n行停住);next或step(執行下一步);info break(查看斷點);delete  n(刪除          第n個點);quit(退出);continue(跳過本次斷點運行到下一次斷點);finish(跳過本次斷點運行,單隻運行完子程序);

         next 和 step 的區別:next不可進入子程序而step可以;

 

3、make 工程管理的作用?

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

4、makefile 的語法是什麼?(定義、執行順序)

      在各個子目錄和當前目錄中建立 mkdir Makefile,用vim對Makefile進行編寫;

      三要素:目標,依賴,命令;執行命令需要依賴文件,會生成目標文件

                   格式:  目標:依賴

                                tab          命令 

       執行循序:由上而下執行;

5、企業級工程目錄是如何創建?分別描述三個不同 makefile 的作用?

      總控 Makefile:將各個子目錄下的 .o 文件鏈接生成可執行文件

      子目錄 Makefile:將目錄下的 .c 文件編譯生成 .o 文件

      scripts 目錄下的 Makefile:相當於C語言中的頭文件定義了一些變量

 

今日開發中出現的問題彙總

 

 反編譯 list 顯示代碼不全

 對Makefile中的一些命令使用不理解

昨天未解決問題(現已解決):鏈接:地址和空間分配,重定義和符號決議;統計生成有邏輯的符號表進行地                                                                           址和空間分配;分爲:靜態 和 動態 鏈接

 

今日未解決問題

 

反編譯 list 顯示代碼不全 

今日開發收穫

 通過今日的學習和開發,掌握和熟悉了許多的gdb調試器指令和make工程管理器的編寫方法;

 

自我評價

 

(是否按開發規範完成既定任務,需要改進的地方,與他人合作效果等)

 

 

 今天基本完成了開發規範完成既定任務;瞭解了C語言的錯誤類型分爲:編譯時錯誤(語法)和運行時錯誤(內存錯誤 或 總線錯誤)。

其他

 

 

CC := gcc
CFLAGS := -Wall -o3
Lids = -lpthread
Target := cal
Source := $(wildcard src/*.c)
Objs := $(patsubst %.c,%.o,$(Source))
Modules += main add sub mul div
AllObjs := $(addsuffix /src/*.o,$(Modules))

 

.PHONY:Echo clean

Echo:
@echo "make done!"
clean:

@echo "clean done!"

 

include ../scripts/Makefile 
all : $(Objs) 
clean : 

rm -rf $(Objs)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章