gcc命令初探

gcc作爲GNU的一個編譯工具,可以編譯c、c++、fortran語言在內的許多語言。使用gcc要在linux環境下,我們可以使用真正的linux系統或使用一些windows下的虛擬軟件,比如安裝一個虛擬機,並在裏面搭上Linux系統,這樣方便開發,或是下載xshell這種軟件,也可以使用gcc命令行。

運行一個程序分爲四個步驟:預處理,編譯,彙編,鏈接。

預處理:將頭文件和宏等進行導入和處理。

編譯:將c語言代碼編譯生成彙編代碼。

彙編:將編譯階段生成的彙編代碼轉化成可以在CPU上面執行的程序,即目標代碼。

鏈接:將目標代碼變成可執行文件。

在gcc編譯工具中,前三個步驟可以分開執行,對c語言編寫的源文件a.c來說:

gcc -E a.c -o a.i,預處理,將頭文件,宏等進行展開

gcc -S a.i –o a.s,生成彙編語言文件

gcc –c a.s –o a.o,生成目標文件

gcc a.o –o a 鏈接,生成可執行文件

雖然可以一步步進行編譯,但是前三個步驟也可以使用一條指令來進行操作,例如:對於c源文件a.c來說,輸入命令:gcc a.c –o a指令,即可直接從源文件生成可執行文件a。再使用指令./a就可以運行可執行文件。

此外,可以通過命令 gcc –pedantic a.c可以在生成目標文件的時候檢查是否符合ANSI標準,以生成三個等級的warning,意在提升程序的可以移植性等特性。

代碼優化,採用gcc中的 –O選項,分爲-O1,-O2和-O3三個級別的代碼優化。例如對於源程序a.c,生成其可執行程序並進行代碼優化運用命令:gcc –O a.c –o a.o。三個等級的選擇一般選擇第二個級別,在優化程度與優化時間中尋找平衡。

當然還有很多功能,如-g打開調試功能,通過-g生成的可執行文件可以使用gdb工具來進行調試。還有-Wall等一些操作,這裏先不一一介紹了。

發佈了38 篇原創文章 · 獲贊 87 · 訪問量 7320
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章