2018-2019-1 20165212 《信息安全系統設計基礎》第1周學習總結
阿新 • • 發佈:2018-09-24
命令補全 時間 命令 參數 目標 創建 float 方案 sub
*
2018-2019-1 20165212 《信息安全系統設計基礎》第1周學習總結
教材內容總結
GCC編譯
1.單文件
- 預處理: gcc -E hello.c -o hello.i
- 編譯: gcc -S hello.i -o hello.s
- 匯編: gcc -c hello.s -o hello.o
- 鏈接: gcc hello.o -o hello
- 或者直接用ESC.iso
2.多模塊
一起編譯: gcc testa.c testb.c -o test 或者 gcc *.c -o test 分別編譯各個源文件,之後對編譯後輸出的目標文件鏈接
3.-I參數
.h文件放在include中,.c文件放入src中 用於指明頭文件路徑
GDB命令行界面使用技巧
- 條件斷點
- 設置斷點:b 5(如果要在第五行斷點)
- 條件斷點:b 5 if i=5
- 命令補全:TAB
- gdb常用命令:
靜態庫與動態庫
靜態庫 生成:
- 生成四個.o文件 gcc -c -I/頭文件所在路徑 add.c sub.c mul.c div.c
- 生成靜態庫 ar rcvs libmath.a add.o sub.o mul.o div.o
- 調用:先後使用 gcc main.c -o main -I/頭文件所在路徑 -L. -lmath 和 ./main 來生成main文件並調用靜態庫執行文件
動態庫 生成:
- 生成四個文件: gcc -fPIC -c -I/頭文件所在路徑 add.c sub.c mul.c div.c
- 生成動態庫(共享): gcc -shared -o mymath.so add.o sub.o mul.o div.o
- 調用: gcc -I/頭文件所在路徑 -o main main.c -L. -lmath
MakeFile
-
創建:
- vi makefile
-
書寫:
- targets : prerequisites
- 或者targets : prerequisites ; command
學習過程中遇到的問題
-
問題1:fatal error:找不到head.h
- 解決方案:在上級目錄中輸入 gcc src/main.c -o src/main lib/libmath.a -I include
- 解決方案:在上級目錄中輸入 gcc src/main.c -o src/main lib/libmath.a -I include
-
問題2:對於計算機運行代碼的原理仍存在不理解,不熟悉
-
解決方案:記主ESC、ISO,
- 預處理:gcc -E hello.c -o hello.i
- 編譯:gcc -S hello.i -o hello.s
- 匯編:gcc -c hello.s -o hello.o
並多動手測試,不局限於課程中的案例。
-
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 115/115 | 1/1 | 5/5 |
2018-2019-1 20165212 《信息安全系統設計基礎》第1周學習總結