1. 程式人生 > >Linux下的編輯器和編譯器,為什麼除錯的時候需要編譯選項中新增 -g. 同學們自行調研readelf命令,原始碼安裝, rpm安裝, yum安裝

Linux下的編輯器和編譯器,為什麼除錯的時候需要編譯選項中新增 -g. 同學們自行調研readelf命令,原始碼安裝, rpm安裝, yum安裝

1、除了vim, 還有哪些常用的牛逼的編輯器, 並能夠橫向對比編輯器之間的區別和優缺點 vim是從vi發展出來的一個文字編輯器。程式碼補完、編譯錯誤跳轉等方便程式設計的功能特別豐富,在程式設計師中被廣泛使用。

sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為“模式空間”,接著用sed命令處理緩衝區的內容,處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,這樣不斷重複,只到檔案末尾。檔案內容並沒有改變,除非你使用重定向的儲存輸出。sed主要用來自動編輯一個或多個檔案,簡化對檔案的反覆操作,編寫轉換程式等。

emacs和vim比起來,編輯效率低下。emacs強調統一的環境,便於程式設計,裡面包含了原始碼管理,郵件收發等,最重要的是所謂與gbd出自一家,相容性好。

nano只是一個類似emacs的簡單編譯器,linux下有很多文字編輯器,其中系統(不管哪個分支)都會自帶nano,但nano功能很少。 2、 自行查詢資料, 調研除了gcc, 還有哪些常用的牛逼的編譯器(不限制程式語言, 不限制平臺). 1 vs是目前做得最好的IDE(整合開發環境)之一,對於初學者來說很容易上手。隨著版本的更新,功能逐漸強大起來。

  1. C++buider具有一個專業C++開發環境所能提供的全部功能:快速、高效、靈活的編譯器優化,逐步連線,CP透視,命令列工具等。它實現了視覺化的程式設計環境和功能強大的程式語言(C++)的完美結合。

3 Turbo C:使用了一系列下拉式選單,將文字編輯、程式編譯、連線以及程式執行一體化, 大大方便了程式的開發。

4 Dev-C++: 是一個Windows環境下C/C++的整合開發環境(IDE),缺點是Debug功能弱。

5 G++:linux裡的C++編譯器

3、 為什麼除錯的時候需要編譯選項中新增 -g. 同學們自行調研readelf命令. 4. gcc -g:-g 選項會產生能額外的、只有 GDB 能用的除錯資訊;這種額外資訊能夠令 GDB 更好的進行除錯。產生符號除錯工具(GNU的gdb)所必要的符號資訊,要想對原始碼進行除錯,我們就必須加入這個選項。

  1. Readelf指令:Readelf命令用來顯示一個或者多個elf格式的目標檔案的資訊,可以通過它的選項來控制顯示哪些 資訊。elf格式的檔案也包括了含有elf檔案的目錄。elf檔案:executables&linkableformat。Linux下面,目標檔案、共享物件檔案、可執行檔案都是使用ELF檔案格式來儲存的。
gcc -o test.c
//會生成test.o檔案
//該檔案就需要用Readlf命令來開啟,因為該檔案就是按照elf檔案的格式來組織的,使用其他文字編輯器是不能開啟的。

比如用vim 開啟elf格式的檔案,會出現以下狀況 在這裡插入圖片描述

4、同學們自行調研Linux下軟體安裝的幾種方式(原始碼安裝, rpm安裝, yum安裝). 重點要理解rpm安裝和yum安裝的區別. (1)原始碼安裝 幾乎所有的開源軟體都支援在Linux下執行,而這些軟體一般都以原始碼形式發放,只需要Linux安裝了gcc、make、automake、autoconf都支援原始碼安裝。

①原始碼安裝的方式 1、cd 原始碼所在目錄 2、./configure [opts] 3、make 4、make install ②原始碼安裝優點 原始碼安裝的優點有以下幾點

文件齊全 因為可以定位到程式碼,所以debug方便 本機相容性最好(由於是本機編譯的,只要編譯通過,就沒有各種庫的依賴的問題) ③原始碼安裝的缺點 編譯麻煩 缺乏自動依賴管理,軟體升級麻煩 (2)rpm包安裝 rpm包安裝幾乎在所有Linux平臺上都支援,它就像Windows下的exe安裝檔案一樣,各種檔案已經編譯好,並打包,哪個檔案在哪個資料夾裡面都已經被指定好,所以很方便。

①rpm包安裝的方式 由於安裝的方式非常簡單,我們只需要輸入一條指令即可。

rpm -i xxx.rmp 通過上面的命令我們便可以完成rpm包的安裝。

②rpm包解除安裝的方式 rmp包解除安裝的方法也很簡單,只需要如下命令:

rpm -e 包名 ③rpm包升級的方式 升級需要如下命令:

rpm -U 包名 我們需要注意的是此時計算機需要聯網。

(三)yum安裝軟體包 yum並不是一種包,它是安裝包的一個軟體,在CentOS中是軟體包的管理器,yum也對依賴關係進行管理,但是必須要在聯網的情況下完成。

①yum包安裝的方式 yum -y install ②yum包解除安裝的方式 yum remove 包 rpm安裝和yum 安裝的區別 rpm是由紅帽公司開發的軟體包管理方式,使用rpm我們可以方便的進行軟體的安裝、查詢、解除安裝、升級等工作。但是rpm軟體包之間的依賴性問題往往會很繁瑣,尤其是軟體由多個rpm包組成時。

Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟體包管理器。基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝 參考文章:http://www.cnblogs.com/heshouhui/p/9672611.html