在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寫了另外乙...