偵錯程式:gdb
gun計畫的工具;核心除錯kgdb
程式的錯誤分類:編譯時錯誤:語法錯誤 執行時錯誤:記憶體問題,邏輯問題
gdb的功能:1.執行程式;2.設定斷點;3.檢視變數的值
hello.c gcc -g hello.c -o hello gdb hello
使用–tui:
layout asm
layout src
layout split
runfinish
continue(結束當前斷點,繼續往下執行,直到遇到下乙個)
break + 行號
break + 函式名
break + 行號if條件
info break;(檢視斷點資訊)
delete + 斷點編號
enable + 斷點
disable + 斷點編號
單步執行:
step(可進入子函式)
next(不可進入子函式)
工程管理器:make — 如何編寫makefile檔案?
1、 工程管理器:編譯很個檔案(型別不同、存放不同目錄、資源檔案使用)組成的軟體**結構 —實現自動編譯(根據makefile檔案內容進行)
makefile「自動編譯「:
1. 根據makefile檔案的內容進行自動編譯
2. 根據檔案的時間戳來判斷檔案是否需要編譯
單個.c — gcc hello.c -o hello
10000個.c(分別儲存在100個不同目錄) – gcc *.c -o hello
make —makefile(make讀取makefile裡內容)
如何編寫makefile檔案?
1 makefile是個指令碼檔案(批處理)
2 makefile語法:目標、依賴、命令
目標:依賴
按下tab 再鍵入命令
執行命令,依賴這個檔案,最終生成目標;
3 makefile執行順序:自上向下,當你的目標依賴的檔案又是乙個目標時,會先跳轉到該目標去執行相關命令
make+目標名:從該目標開始自上向下執行;
4 偽目標:執行命令,不生成對應的檔案;
.phony:clean install
echo在終端上?
make -f makefile指定後面的編譯?
./cal
功能目錄管理軟體**
makefile:
1、 總控makefile
進入各個功能目錄執行make,並將所有.o檔案鏈結生成可執行檔案(再看)
2、功能目錄makefile
將功能目錄下的原始檔編譯生成目標檔案.o(最後看)
3、scripts目錄標頭檔案makefile
定義變數,供其他makefile使用(閱讀makefile順序:先看)
為什麼將.c檔案先編譯生成.o檔案,再由.o檔案生成可執行檔案?
前提:原始檔到可執行檔案:預處理、編譯、彙編、鏈結
gcc hello.c -o hello 4s
cal:main
鏈結 1s
gcc hello.c -0 hello 4s
cal:main.c add.c sub.c div.c mul.c
gcc *.c -0 cal
假設修改了add.c — make: 20s假設修改了add.c — make:(.c -->.0) 第一次:20s,第二次:4s+4s=8s。
第四次課程作業
可以劃分為兩個類,乙個是計算類,乙個是生成類。生成類 計算類 生成類生成算式傳遞給計算類計算。生成類中的classone以及classtwo給計算類傳送訊息。生成類持有計算類的引用。之前的演算法很暴力,就是已經知道算式的型別就直接計算了,前幾天樂忠豪同學跟我提及了字尾表示式計算算式,搜尋了下,獲益良...
第四次作業
扎ogu 典型產品 最高傳輸速率 ieee 802.11a wi fi5 802.11a 43m 450 zyxel p334u 54mbps 1500 zyxel p335u 54mbps 1600 ieee 802.11b d link di 624 a 54mbps 215 linksys w...
第四次作業
作業題一 vs2012 rc在介面上,比beta版更容易使用,彩色的圖示和按照開發 執行 除錯等環境區分的顏色方案讓人愛不釋手。vs2012整合了asp.net mvc 4,全面支援移動和html5,wf 4.5相比wf 4,更加成熟,期待已久的狀態極工作流回來了,更棒的是,現在它的設計器已經支援c...