Linux學習之初試編程基礎

來源:互聯網
上載者:User

想來想去還是重新學習下linux下面的基本操作吧,就當做是熟悉指令了。

把國嵌的實驗重新做一遍,雖然之前有做過,但是也沒有做什麼記錄,所以自己現在感覺有點沒譜,所以從gcc開始:

一、編寫一應用程式,使用gcc進行編譯,並分別使用-o,-g,-static,-O2選項

1_1.c

1_2.c

1、 執行指令 gcc 1_1.c 1_2.c 預設產生 a.out可執行檔

2、 執行指令gcc 1_1.c 1_2.c –o a 則可以指定產生可執行檔的檔案名稱a作用和1相同

3、 執行指令gcc  - g  1_1.c 1_2.c –o  a 則可以產生具有調試資訊執行檔案

4、 執行指令gcc  –static  1_1.c 1_2.c -o b 則可以組建檔案b 但是通過ls –l 指令可以發現a和b檔案的大小是不一樣的,如下所示:

所以後者綁定了庫檔案,是為靜態庫串連!

5、 執行指令 gcc –O 1_1.c 1_2.c 暫時沒有發現有什麼好處!

二、GDB程式的調試,編寫一應用程式,使用gdb調試,調試中使用到該小節介紹的所有命令。編寫測試程式如下1_1.c

1、 執行指令 gcc –g  1_1.c產生a.out檔案,並且是帶有調試資訊的。

2、 執行指令gdb  a.out進入調試狀態!首先一個命令list(l)可以查看調試的程式。

3、 break(b) 函數名:表示在該函數入口打斷點;break(b)行號:表示在該行處打斷點

break(b) 檔案名稱 行號(函數名):表示在指定的檔案名稱指定的行號(函數)處打斷點

4、 run(r):表示直接運行

5、 next(n):表示不進入子函數而逐步執行下一步

6、 step(s):表示進入子函數而逐步執行下一步

7、 continue(c):表示繼續運行程式

8、 print(p) 變數名:表示查看當前變數的值

9、 watch 變數:對當前變數進行監控

11、quit(q):退出程式調試

12、start 開始運行到main函數

13、backtrace命令(簡寫為bt):可以查看函數調用的棧幀

14、finish 可以運行當前函數直到返回調用處

10、             GNU make的使用

編寫三個程式如下

可以用命令列的方法進行編譯,確實是實現了它的比較大小的功能

鍵入 vimmakefile

輸入以下內容

幾點重要的說明:

$<:代表第一個依賴檔案  

$@:代表當前目標 

$^:代表所有依賴檔案

Makefile中 #後面的內容表示注釋

@表示取消回顯

.PHONY表示聲明一個偽目標

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.