Linux開發工具介紹

2021-08-21 19:07:08 字數 2169 閱讀 5377

vi編輯器是linux系統上常用的文字編輯器

vim 是vi的改進版本,增加了很多擴充套件功能,使之更適合編輯各種程式語言的源**。

vim官方:vim不是文字處理軟體,而是程式開發工具

vi/vim命令模式的分類

一般模式(開啟vi時預設進入一般模式)

可以移動游標,可以刪除文字,可以複製貼上(通過命令)

命令輸入完畢就執行,不需要回車確認。執行完畢後還在一般模式下。

插入(編輯)模式

在一般模式下,輸入【a,a,i,i,o,o,r.r】,可進入編輯模式。

輸入模式下按esc,可返回命令模式。

底行命令模式

作用:將檔案儲存或退出vi,也可以設定編輯環境,如尋找字串、列出行號等。

在一般模式下輸入":"或者"/"為前導指令,出現在螢幕的最下一行,任何輸入都被當成特別指令。

輸入命令需要回車確認才執行,執行完畢後返回一般模式。

gcc工具鏈

gnu/linux系統上常用的編譯工具是gcc。gcc實質上不是乙個單獨的程式,而是多個程式的集合,因此通常稱為工具鏈。    

從c語言原始碼到可執行程式一般要經過以下的處理步驟:

1. 預處理

在這一階段,原始碼中的所有預處理語句得到處理,例如

#include語句所包含的檔案內容替換掉語句本身

所有已定義的巨集被展開

根據#ifdef,#if等語句的條件是否成立取捨相應的部分

預處理之後原始碼中不再包含任何預處理語句。

gcc預處理階段可以生成.i的檔案,通過選項-e可以使編譯器在預處理結束時就停止編譯。例如:

gcc -e hello.c  -o hello.i    

2. 編譯

這一階段,編譯器對原始碼進行詞法分析、語法分析、優化等操作,最後生成彙編**。這是整個過程中最重要的一步,因此也常把整個過程稱為編譯。

可以通過選項-s使gcc在進行完編譯後停止,生成.s的匯程式設計序。例如:

gcc -s hello.c  -o hello.s    

3. 彙編

這一階段使用彙編器對彙編**進行處理,生成機器語言**,儲存在字尾為.o的目標檔案中。

當程式由多個**檔案構成時,每個檔案都要先完成彙編工作,生成.o目標檔案後,才能進入下一步的鏈結工作。

目標檔案已經是最終程式的某一部分了,只是在鏈結之前還不能執行。可以通過-c選項生成目標檔案:

gcc -c hello.c -o hello.o    

4. 鏈結

鏈結的主要內容是把各個模組之間相互引用的部分處理好,使得各個模組之間能夠正確地銜接。

比如:hello程式呼叫了printf函式(標準c庫中的乙個函式)

而printf函式存在於乙個名為printf.o的單獨的目標檔案中。

鏈結器負責併入printf.o,結果得到hello檔案,使其成為乙個可執行目標檔案(或者簡稱為可執行檔案)。

gcc hello.c   -o hello

make工具

假設:乙個軟體工程包含幾十上百個檔案,我每次除錯只修改其中幾個個檔案,如果用簡單的gcc編譯器,會有什麼麻煩?

1用gcc再次編譯時,其他沒有修改的檔案也要進行再次編譯,浪費時間。

2.每次都要輸入很長的gcc命令,使用麻煩。

解決辦法:使用make工具,解決以上兩個問題

make工具的基本用法如下:

make [-c dir] [-f file] [target ...]

-c dir: 執行時進入dir目錄,預設是當前目錄

-f file: 使用file作為makefile

target: 要完成的目標,目標在makefile中定義,預設是定義的第1個目標      

gdb除錯工具

啟動後進入gdb互動介面,可以輸入gdb的命令開始除錯,常用命令如下,通常直接回車就是重複上一條命令。     

Python 開發工具介紹

一 editra開發工具功能介紹 首先editra是個開源專案,用python編寫而成。目前支援50多種指令碼編寫。它可在 linux windows 及 mac os x 等系統上執行。它有以下一些功能 語法高亮顯示,支援 60 種語言 摺疊 自動縮排 自動補完 呼叫提示 python 支援正則搜...

oracle開發工具介紹

a sqldbx 王金生曾推薦過的一款資料庫客戶端開發工具,使用容易,不需要額外的安裝其它外掛程式,有sql提示功能,支援 oracle,sybase ase,ibm,db2 udb,microsoftsql server 和odbc 資料來源,免費綠色版。b plsql developer 專門針...

常用開發工具介紹

1 常用四大工具 序號開發工具名稱 簡稱描述 用途 1visual studio vs服務層軟體開發的工具 2sql server oracle sql server oracle 儲存應用服務的資料 3altova xmlspy xml4 subversion svn 管理工具,是乙個開放源 的版...