20145237 《信息安全系统设计基础》第2周学习总结
20145237 《信息安全系統設計基礎》第2周學習總結
教材學習內容總結
vi的基本操作
·最基本文本編輯
1.光標移動:h:光標左移;j:光標下移;k:光標上移;l:光標右移。
2.字符編輯:將光標移動到需要修改的字符位置,x鍵:刪除該字符;i鍵:在光標前添加某字符。
3.文本編輯:無論光標放在哪里,。A鍵:都會在末尾連續添加字符
4.退出:輸入,q!:放棄所有改動;wq:保存改動。
5.刪除類命令:dw:當前光標處到下一個單詞開始處刪除。de:當前光標到單詞結束。d$:當前光標到行末。
gcc編譯器的基本原理
gcc 編譯流程解析:預處理、編譯、匯編、鏈接
Linux的可執行文件并沒有像 Windows 那樣有明顯的.exe后綴名, 只需向其分配x(可執行)權限即可 sudo chmod u+x excutefile
gcc的-E參數可以讓gcc在預處理結束后停止編譯過程
gcc預處理源文件的時候(第一步),不會進行語法錯誤的檢查。語法檢查會在第二步進行,比如花括號不匹配、行末尾沒有分號、關鍵字錯誤等
1)預處理階段:在該階段,對包含的頭文件(#include)和宏定義(#define、#ifdef 等)進行處理。在上述代碼的預處理過 程中,編譯器將包含的頭文件 stdio.h 編譯進來,并且用戶可以使用 gcc 的選項“-E”進行查看,該選項的 作用是讓 gcc 在預處理結束后停止編譯過程。
gcc –E hello.c –o hello.i
選項“-o”是指目標文件,“.i”文件為已經過?處理的 C 程序。
(gcc 指令的一般格式為:gcc [選項] 要編譯的文件 [選項] [目標文件] 其中,目標文件可缺省,gcc 默認生成可執行的文件,名為:編譯文件.out)
2)編譯階段:接下來進行的是編譯階段,在這個階段中,gcc 首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼實際要做的工作,在檢查無誤后,gcc 把代碼翻譯成匯編語言。用戶可以使用“-S”選項來進行查看, 該選項只進行編譯而不進行匯編,結果生成匯編代碼。
3)匯編階段:匯編階段是把編譯階段生成的“.s”文件轉成目標文件,讀者在此使用選項“-c”就可看到匯編代碼已轉化為“.o”的二進制目標代碼了。
函數庫有靜態庫和動態庫兩種。靜態庫是指編譯鏈接時,將庫文件的代碼全部加入可執行文件中,因此生成的文件比較大,但在運行時也就不再需要庫文件了。其后名通常為“.a”。動態庫與之相反,在編譯鏈接時并沒有將庫文件的代碼加入可執行文件中,而是在程序執行時加載庫,這樣可以節省系統的開銷。一般動態庫的后?名為“.so”,如前面所述的 libc.so.6 就是動態庫。gcc 在編譯時默認使用動態庫。 完成了鏈接之后,gcc 就可以生成可執行文件。
代碼調試中的問題和解決過程
在編寫實驗樓中的程序時,我把head.h寫成了head.c導致之后運行時失敗,我又重建了head.h文件,程序就能成功運行了
本周代碼托管截圖
學習進度條
| 目標 | 5000行 | 30篇 | 400小時 | |
| 第一周 | 0/0 | 1/2 | 20/20 | |
| 第二周 | 100/500 | 1/3 | 18/38 |
轉載于:https://www.cnblogs.com/20145237fhn/p/5907273.html
總結
以上是生活随笔為你收集整理的20145237 《信息安全系统设计基础》第2周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【MySQL】在Windows下更改da
- 下一篇: 联想EDU同传系统 版本7.5 7.6在