2018-2019 20165203 《信息安全系统设计基础》第一周学习总结
2018-2019-1 20165203 《信息安全系統設計基礎》第一周學習總結
教材學習內容總結
- 編譯:gcc [選項] [文件名]
選項參數表
| -E | 僅執行編譯預處理 | |
| -S | 將.c代碼轉換為匯編語言代碼 | |
| -c | 僅執行編譯操作,不進行連接操作 | |
| -o | 指定生成的輸出文件 | |
| -I (大寫) | 指定頭文件目錄 | |
| -l | 指定程序要連接的庫 | |
| -L | 指定庫文件所在的目錄名 |
注意:-I:我們平時在使用時,-I要緊跟頭文件所在的地址目錄: gcc -E/-S/-c/-o -I 頭文件所在目錄 src/ *.c bin/ *
- 編譯過程:
1.預處理:.c文件變成.i文件
gcc -E -I 頭文件所在目錄 src/ *.c -o bin/ *.i
2.編譯:.i文件變成.s文件(匯編程序)
gcc -S -I 頭文件所在目錄 src/ *.i -o bin/ *.s
3.匯編:.s文件變成.o文件
gcc -c -I 頭文件所在目錄 src/ *.s -o bin/ *.o
4.鏈接:.o文件變成可執行文件
gcc *.o -o 文件名
也可直接輸入gcc *.c -o *直接編譯成可執行文件
-多模塊一起編譯:
gcc test_a.c test_b.c -o test 或 gcc *.c –o test
也可分開編譯
第一種方法編譯時需要所有文件重新編譯;
第二種只重新編譯修改的文件,未修改的不用重新編譯。
- 項目目錄結構
| src | 存放.c文件 | |
| include | 存放.h文件也就是頭文件 | |
| bin | 存放項目調試之后的可運行文件 | |
| libs | 存放動態庫和靜態庫文件 | |
| Readme.md | 閱讀指南文件,包括如何使用這個程序等 | |
| makefile | 描述了整個工程的編譯、鏈接等功能,“自動化” |
- 靜態庫
步驟:
1、輸入gcc -c -I/頭文件所在路徑 add.c sub.c mul.c div.c生成.o文件
2、輸入ar rcvs libmath.a add.o sub.o mul.o div.o生成靜態庫
3、輸入gcc main.c -o main -I/頭文件所在路徑 -L. –lmath生成可執行文件main
注意:-l參數用來指定程序要鏈接的庫,-l參數緊接著就是庫名。
-L參數跟著的是庫文件所在的目錄名。
gcc會在靜態庫名前加上前綴lib,然后追加擴展名.a得到的靜態庫文件名來查找靜態庫文件。
- 動態庫
步驟:
1、輸入gcc -fPIC -c -I/頭文件所在路徑 add.c sub.c mul.c div.c生成.o文件
2、輸入gcc -shared -o libmath.so add.o sub.o mul.o div.o生成動態庫
3、將文件libmath.so復制到目錄/usr/lib中后,再輸入gcc main.c -o main -I/頭文件所在路徑 -L. lmath生成可執行文件main
代碼調試中的問題和解決過程
Q:自己的虛擬機vim編輯器中Backspace鍵及方向鍵無法使用
A:自己查找得知,自己安裝的編輯器版本不是最新版本,輸入sudo apt-get remove vim-common
sudo apt-get install vim
以安裝最新的vim編輯器
代碼托管
其他(感悟、思考等,可選)
本周是第一周學習,俗話說良好的開端是成功的一半,自己根據婁老師的實驗一步一步來,鞏固了本周的學習,理論和實踐相結合,可以更有利于知識的融會貫通。
學習進度條
| 目標 | 5000行 | 30篇 | 400小時 | |
| 第一周 | 200/200 | 2/2 | 20/20 |
參考資料
- 《深入理解計算機系統V3》學習指導
轉載于:https://www.cnblogs.com/20165203-xyx/p/9728474.html
總結
以上是生活随笔為你收集整理的2018-2019 20165203 《信息安全系统设计基础》第一周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到浇水预示着什么
- 下一篇: 基于MVC的网站和在线教育系统