Linux的寫代碼基本步驟
- 一、文本編輯工具Vim的基本使用
- (1)一般模式
- (2)編輯模式
- (3)命令模式
- 二、撰寫C語言源檔案
- 三、生成可執行檔案并執行
- (1)生成可執行檔案原理
- (2)基本生成方法
- ① 用gcc直接編譯執行
- ② 用make命令實作
- 1、撰寫makefile檔案
- 2、makefile的基本格式
- 3、使用make命令
- 4、執行可執行檔案
- ③用gdb除錯器運行
- 1、啟動gdb除錯器
- 2、運行可執行檔案
一、文本編輯工具Vim的基本使用
第一步是用Vim寫C語言代碼,所以需要介紹一下Vim命令,早期的Linux使用vi作為系統默認的編輯器,而Vim是vi的升級版,主要區別是Vim可顯示顏色,便于用戶編輯,命令的使用差別不大,
Vim有3種模式:一般模式、編輯模式和命令模式,
(1)一般模式
一般模式就是在終端輸入vim命令后進入的界面,該模式只能移動游標位置和字符或字串的復制、洗掉和粘貼等操作,
① 移動游標:
| 按鍵 | 作用 |
|---|---|
| shift + 6 | 移動到本行行首 |
| shift + 4 | 移動到本行行尾 |
| g + g | 移動到首行 |
| G | 移動到尾行 |
② 洗掉、復制和粘貼:
| 按鍵 | 作用 |
|---|---|
| y + y | 復制游標所在行 |
| d + d | 洗掉/剪切游標所在的那一行 |
| p | 從游標所在行開始,向下粘貼已經復制或者粘貼的內容 |
注:字母的大小寫一般起到的命令作用都是不同的,
(2)編輯模式
編輯模式顧名思義就是修改文本下的模式,從編輯模式回到一般模式,只需按 Esc 鍵即可,
進入編輯模式:
| 按鍵 | 作用 |
|---|---|
| i | 在當前字符前插入 |
| I | 在游標所在行的行首插入 |
| a | 在當前字符后插入 |
| A | 在游標所在行的行尾插入 |
| o | 在當前行的下一行插入新的一行 |
| O | 在當前行的上一行插入新的一行 |
(3)命令模式
命令模式可以搜索某個字符或者字串,也可以實作保存、替換和退出,在一般模式下,輸入:或者/即可進入命令模式,
命令模式:
| 按鍵 | 作用 |
|---|---|
| / word 或者 :word | 在游標之后查找一個字串word,按 n后繼續搜索 |
| :w | 保存文本 |
| :q | 退出Vim |
| :wq | 保存并退出 |
| :w! | 強制保存,在root用戶下,即使文本只讀也可以完成保存 |
| :q! | 強制退出,所有改動不生效 |
二、撰寫C語言源檔案
(1)創建C語言撰寫的檔案,然后會自動進入一般模式
vim helloworld.c
(2)輸入上面提到的編輯模式下的命令進行撰寫 (下圖的示例用的是Ubuntu)

(3)輸入Esc后進入命令模式進行保存并退出
一個C語言源檔案就這樣寫好了
三、生成可執行檔案并執行
(1)生成可執行檔案原理
生成可執行檔案有四步:預處理、編譯、匯編和鏈接,(可以看下圖)

(2)基本生成方法
① 用gcc直接編譯執行
gcc test.c -o test 將test.c預處理、匯編、編譯并鏈接形成可執行檔案test,-o選項用來指定輸出檔案的檔案名.(不加-o默認可執行檔案名為a.out)
gcc helloworld.c //生成可執行檔案
./a.out //運行可執行檔案
輸入這個命令會發現有一個 a.out 檔案,此檔案便是可執行檔案,想要運行該檔案直接輸入該檔案的絕對路徑即可,
② 用make命令實作
make的運行程序前,必須撰寫makefile檔案, 它描述了軟體包中檔案之間的關系,提供更新每個檔案的命令,make實際上是根據makefile來進行編譯的,
1、撰寫makefile檔案
vim makefile //撰寫makefile
2、makefile的基本格式
目標檔案:依賴檔案
命令
該格式只針對初學者運行這次簡單的源代碼實驗,想擴展更多請自行查閱資料,
目標檔案即是我需要生成的檔案,依賴檔案就是對于生成目標檔案的“原材料”,
gcc的常用命令:
| 命令 | 作用 |
|---|---|
gcc -E test.c -o test.i | 將test.c預處理輸出test.i檔案 |
gcc -S test.i -o test.s | 將預處理輸出檔案test.i匯編成test.s檔案 |
gcc -c test.s -o test .o | 將匯編輸出檔案test.s編譯輸出test.o檔案 |
gcc test.o -o test | 將編譯輸出檔案test.o鏈接成最終可執行檔案test |
makefile內容撰寫:
helloworld:helloworld.o //.o鏈接成可執行檔案
gcc helloworld.o -o helloworld //命令前需要輸入Tab
helloworld.o:helloworld.s //.s匯編成.o
gcc -c helloworld.s -o helloworld.o
helloworld.s:helloworld.i //.i編譯成.s
gcc -S helloworld.i -o helloworld.s
helloworld.i:helloworld.c //.c預處理成.i
gcc -E helloworld.c -o helloworld.i
3、使用make命令
在makefile所在檔案的目錄下使用命令make,它就會自動執行makefile里面的內容,
4、執行可執行檔案
在 ① 所講過的直接輸入其路徑 (即./helloworld),即可運行可執行檔案helloworld ,
③用gdb除錯器運行
1、啟動gdb除錯器
gdb 可執行檔案此命令是啟動gdb除錯器的命令,因此我們先需要源代碼生成可執行檔案,
gcc -g helloworld.c -o helloworld用此命令生成可執行檔案,
切記不可用上面所講的gcc helloworld.c來生成,否者會出錯,
2、運行可執行檔案
gdb的常用命令:
| 命令 | 作用 |
|---|---|
list n | 從頭列印該行數n的代碼 |
break n | 在此行n添加斷點 |
info | 來在除錯時查看暫存器、斷點、觀察點和信號等資訊 |
run | 運行程式,遇到斷點會停止 |
print n | 列印當前變數n的值 |
next | 單步除錯(不可進入子函式) |
step | 單步除錯(可以進入子函式) |
continue | 程式運行到下一個斷點或直到程式結束 |
quit | 退出gdb |
gdb除錯器主要用于除錯較長較復雜的代碼,這里作為擴展,
需要轉載請標明出處
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/198527.html
標籤:其他
