gcc編譯器簡介

2021-07-04 14:54:17 字數 974 閱讀 2655

在linux中選擇gcc編譯器的原因是gcc執行效率高。

gcc基本用法:gcc [options] filename

其中options為編譯選項。

例子:執行指令 gcc hello.c ,則對hello.c進行編譯,如果程式沒有語法錯誤,則產生可執行檔案a.out(gcc預設檔名)

執行可執行檔案指令:./a.out

檔案預設型別:

***.c:c語言源**檔案

***.a:由目標檔案構成的庫檔案

***.c,***.cc,***.cxx:c++源**檔案

***.h:標頭檔案

***.o:目標檔案

***.s:組合語言源**檔案

編譯選項:

-o output_filename:確定輸出檔名為output_filename

-o:對程式進行優化編譯、鏈結,當然,優化編譯、鏈結需要的時間會變長

-o2:更加深入的優化編譯、鏈結。

ps:優化是對程式中多餘的變數、浪費的空間進行處理,把程式變為語句最少、占用記憶體量少、處理速度快、外部裝置分時使用效率高的最優程式

-c:不鏈結(即只進行預處理、編譯、彙編)

-g:產生除錯工具gdb所需要的符號資訊

-i dirname:將dirname所指出的目錄作為編譯器尋找標頭檔案的標準路徑。

例如:gcc hello.c -i /home/include -o hello

#include//gcc在系統預設的頭檔案目錄(如/usr/include)中尋找標頭檔案

#include"b.h"//gcc在當前目錄中尋找標頭檔案,-i作用為當gcc在當前目錄中沒有尋找到需要標頭檔案時,就到/home/include目錄下尋找。

每乙個編譯器都有乙個或幾個尋找標頭檔案的標準路徑。

-w:不生成任何警告資訊

-wall:生成所有警告資訊

gcc編譯器(二)

靜態庫 工程在呼叫靜態庫時,複製靜態庫源 加長,不節省程式空間字尾名.a 優點 編譯後不需要再依賴庫 以空間換時間 動態庫 工程建立對映關係,每次呼叫都需要去庫中載入,字尾名為.so 共享庫 程式輕便,便於公升級。小tips 所有程式執行都在記憶體中,硬碟只能儲存程式。靜態庫的建立 gcc c 原始...

GCC編譯器學習

不同的平台如x86和arm,一段程式跑起來到最下面會轉成彙編,彙編要轉成機器碼,機器碼會由於硬體平台不同而不同。有時候要程式設計序在arm上跑,必須針對arm寫程式,但是在arm上寫程式很麻煩 沒有很好的開發工具 所以我們就在x86平台上 windows 上把程式寫好,但是編譯的時候告訴它我們要執行...

VC編譯器與GCC編譯器的區別

今天無意寫了一段 發現了vc編譯器與gun的gcc編譯器還是存在區別的。畢竟gcc支援的是標準c。include struct node int main 上述 在gcc下是編譯失敗的,提示的錯誤 uknown typename node 但是放到vc編譯器下則順利編譯通過。於是按照標準c寫了另外乙...