Linux編程環境(Linux網路編程筆記)01
Linux環境下的編譯器
vim的使用簡介:
1.vim的安裝:
使用命令:apt-get install +軟體包名
可以用來安裝各種軟體
2.vim編譯器的模式:
Vim主要分為普通模式和插入模式,普通模式是命令模式,插入模式是編輯模式,
再插入模式下可以進行字符的輸入,輸入的鍵值顯示在編輯框中,這些文本可以用于編輯,普通界面是進行命令操作的,輸入的值代表一個命令,
插入模式和普通模式的切換分別為按i鍵和Esc鍵,普通模式下按i鍵會進入插入模式,插入模式下按Esc鍵進入普通模式,
使用Vim建立檔案
- 建立檔案:
使用命令:vim +檔案名
可以建立一個新的檔案并打開, - 進入插入模式:
打開檔案后,按i進入插入模式,vim會在底部顯示“–INSTERT–”,表示當前模式為插入模式, - 退出vim,當編譯完成之后,按Esc回傳普通模式,之后輸入":wq"退出vim編輯器,
使用vim編輯文本
- 移動游標:h,j,k,l
h:左,l:右,j:下,k:上, - 洗掉元素x,dd,u,Ctrl+R
x是洗掉游標所在的單個字符
dd是洗掉游標所在行
Ctr+R是一個特殊命令,他的作用是將記憶體中的字符賦值到所在游標位置之后, - 復制粘貼p,y.
粘貼命令為p,y命令是復制, - 查找字串"/".
查找字串的格式是" /XXX ",其中XXX代表的是待查找的字串
輸入字符”n“進入到下一個檢索到的字串,輸入”N“進入到上一個檢索字串 - 跳到某一行G
數字+G
Linux下的GCC編譯器工具及集
介紹
- GCC是Linux下的編譯工具集,不僅可以編譯c/c++語言,還可以編譯Objective-c,Pascal
等語言 - GCC的c編譯器為gcc,其命令格式為
Usa: gcc [options] file...
- 檔案拓展名的含義:

- GCC編譯器含義
| GCC編譯器命令 | 含義 |
|---|---|
| cc | 指的是C語言編譯器 |
| cpp | 指的是預處理編譯器 |
| gcc | 指的是C語言編譯器 |
| g++ | 指的是c++語言編譯器 |
編譯程式的基本知識
- 編譯器一般對程式有四個編譯階段:
預編譯—編譯和優化—匯編—鏈接
| 檔案 | 作用 |
|---|---|
| 源檔案 | 存放可編輯代碼的檔案 |
| 目標檔案 | 經過編譯器編譯生成的CPU可識別二進制代碼 |
| 可執行檔案 | 目標檔案與相關的庫鏈接后的檔案 |
單個檔案編譯為可執行檔案
- 直接使用gcc命令加上需要編譯的檔案名
| gcc + 檔案名 | 可直接編譯為可執行檔案 |
|---|---|
| ./ +檔案名 | 執行可執行檔案 |
| gcc -0 +名稱+檔案名 | 生成指定檔案名的可執行檔案 |
編譯生成目標檔案
| 命令 | 功能 |
|---|---|
| gcc -c +檔案名 | 生成目標檔案 |
| gcc -c -o +,名稱 +檔案名 | 生成指定名字的目標檔案 |
| gcc -c+多個檔案名 | 同時編譯多個目標檔案 |
生成 .o 檔案
預處理
使用命令
gcc -E +檔案名.c
生成 .i 檔案
編譯為匯編語言
使用命令
gcc -S +檔案名.c
生成 .s 檔案
生成和使用靜態鏈接庫
靜態庫是一個obj檔案的合集,通常靜態庫是以“.a"為后綴,
靜態庫的優點:
** 可以在不用重新編譯程式庫代碼的情況下,進行程式的重新鏈接,這種方法節省了編譯程序的時間,
** 開發者可以提供庫檔案給使用的人員而不用開放源代碼,這是庫函式提供者常用的手段,
1.生成靜態鏈接庫
創建靜態庫的最基本步驟是生成目標檔案,然后使用工具ar對目標檔案進行歸檔,工具ar的-r選項可以創建庫,并把目標檔案插入到指定庫中,其命令為:
ar -rcs +名稱.r +目標檔案
- 使用靜態鏈接庫
在編程時常常需要使用庫函式,例如C標準庫等,GCC鏈接時使用庫函式和一般的obj檔案的形式是一樣的,例如使用main.c進行連接時,需要使用已經編譯好的靜態鏈接庫libstr.a,命令格式如下:
$gcc -o test main.c libstr.a
也可以使用”-l 庫名"命令進行,庫名是不包含函式庫和拓展名的字串,例如編譯main.c鏈接靜態庫libstr.a的命令可以修改為:
$gcc -o test main.c -lstr
上面的命令將會在系統默認的路徑下查找str函式庫,并把它鏈接到要生成的目標程式去,可能系統會提示無法找到庫檔案str,這是由于由于str庫函式沒有在系統默認的查找路徑下,需要顯示指定庫函式的路徑,例如庫函式和當前編譯檔案在同一目錄下:
$gcc -o test main.c -L./ -lstr
注意:
在使用-l選項時,-o選項的專案名稱要在-l鏈接的庫名稱之前,否則GCC會認為-l時輸出目標而出錯,
**===**會有更新…
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/280381.html
標籤:區塊鏈
上一篇:MySQL下載與安裝
