linux中gcc的基礎知識以及k靜態庫的製作

2021-09-25 11:42:53 字數 811 閱讀 1133

寫好乙個main程式後

想要執行它,先編譯gcc -o main main.c

-o main表示 給程式編譯後的名字命名為main

忘記寫-o main 系統將自動將程式儲存到a.out的檔案中

然後再執行 ./main . 表示在當前路徑

目錄:/usr/bin 存放為系統正常使用提供的程式 用於程式開發的工具

/usr/local 或/opt 它分離了廠商提供及後續新增的檔案與系統本身提供的應用程式

gcc 一般位於/usr/bin 或者/usr/local/bin

/usr/include 儲存標頭檔案

庫:預先編譯好函式的集合(標準系統庫檔案一般儲存於/bin或/usr/bin中)

以lib開頭 以.a或.so結束

靜態庫:.a

共享庫:.so

靜態庫與共享庫的相同點:1.儲存位置相同

靜態庫與共享庫的區別:

1.字尾名不同

2.當多個應用程式需要用到同乙個方法時,會被複製很多份,需要佔很多的磁碟空間間與記憶體

3.共享庫在使用時才鏈結所需要的庫,靜態庫在編譯時就把該方法包含進去了

靜態庫的建立:1.建立幾個原始檔(方法)

2.寫乙個呼叫程式main.c

3.將其鏈結起來,並編譯鏈結 gcc -o main main.c test1.c test2.c…

4.生成乙個名叫xx的庫 ar crv libfooxx.a test1.o test2.o…

靜態庫的使用:

5.gcc -o main main.c libfooxx.a

6. ./main

Linux的基礎知識

學習shell,通常會關聯linux,那麼shell和linux是什麼關係了?shell是乙個具備特殊功能的程式。介於使用者和linux作業系統之核心程式 kernel 間的乙個介面。為了對使用者遮蔽核心的複雜性,也為了保護核心,以免使用者誤操作造成損害,在核心的周圍建了乙個外核 shell。使用者...

linux基礎知識

舉例來說,硬碟的檔名稱即為 dev hd a d 其中,括號內的字母為 a d 當中的任何乙個,亦即由 dev hda,dev hdb,dev hdc,及 dev hdd 這四個檔案的意思 注 這種型式的表示法在後面的章節當中會使用得很頻繁,請特別留意 那麼光碟機與軟盤呢?分別是 dev cdrom...

Linux基礎知識

檔案系統 分割槽和掛載 linux 檔案系統是乙個檔案樹,它的所有檔案和外部裝置都是以檔案的形式掛結在這個檔案樹上,例如 usr local 目錄結構屬於分割槽 linux 下,分割槽屬於目錄結構。預設檔案系統一般為ext3 ext2的公升級版 分割槽包括主分割槽 擴充套件分割槽 邏輯分割槽和swa...