gcc編譯器(二)

2021-07-23 09:44:43 字數 614 閱讀 9371

靜態庫:工程在呼叫靜態庫時,複製靜態庫源**加長,不節省程式空間字尾名.a;

優點:編譯後不需要再依賴庫(以空間換時間);

動態庫:工程建立對映關係,每次呼叫都需要去庫中載入,字尾名為.so(共享庫),程式輕便,便於公升級。

小tips:所有程式執行都在記憶體中,硬碟只能儲存程式。

靜態庫的建立:

gcc -c 原始檔.c

ar [rcs/rw] 靜態庫名 目標檔案1,目標檔案2

rc:靜態庫不存在,就建立該庫檔案;

s:更新庫檔案;

ar -l lib_.a 顯示庫中所有的.o檔案;

ar -d lib_.a _.o 在庫中.o的目標檔案刪除(不報錯);

ar -dv lib_.a _.o 在庫中.o的目標檔案顯示錯誤資訊或刪除成功;

ar -x 庫名 _.o 檔名 從庫中提取目標.o檔案(複製) _xv;

靜態庫的使用:

gcc -o file -l. -lname

動態庫的建立:

gcc -shared -fpic -o 庫名.so 原始檔.c;

動態庫的使用:

gcc 原始檔.c ./庫名.so -o 可執行檔名;

gcc編譯器簡介

在linux中選擇gcc編譯器的原因是gcc執行效率高。gcc基本用法 gcc options filename 其中options為編譯選項。例子 執行指令 gcc hello.c 則對hello.c進行編譯,如果程式沒有語法錯誤,則產生可執行檔案a.out gcc預設檔名 執行可執行檔案指令 a...

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