嵌入式系統設計 靜態庫 a和動態庫的製作 so

2021-10-03 23:44:32 字數 1419 閱讀 8130

靜態庫.a和動態庫的製作.so

1、什麼庫檔案?

儲存函式和變數(倉庫)

特點:儲存的函式與變數,只能使用但不能看到其實現。

2、linux庫檔案:

靜態庫:在編譯階段載入;

(將庫檔案的**載入到原始檔)

動態庫:在執行時載入;

3、生成的可執行檔案存在區別(優缺點)

(1)使用靜態庫生成的可執行檔案大於動態庫生成的可執行檔案(程式執行占用記憶體較多)

(2)使用靜態庫生成的可執行檔案難以公升級;使用動態庫生成的可執行檔案易於公升級;

(3)使用靜態庫生成的可執行檔案執行速度快;使用動態庫生成的可執行檔案執行速度慢;

(4)使用靜態庫可執行檔案裡的**容易部署;使用動態庫可執行檔案裡的**難以部署;

4、linux庫檔案存放路徑:

/lib:存放的系統執行所需要的庫;

/usr/lib:存放的是程式執行所需要的庫;

5、如何製作靜態庫?

(1)、將需要儲存的函式所在的檔案編譯生成目標檔案

gcc -c add.c—>add.o

(2)、靜態庫的製作工具:ar

ar rcs(不存在就建立,存在就更新) 庫名 目標檔名

ar rcs libadd.a add.o

(3)、使用

gcc 原始檔 -l庫名 -l庫存放的路徑

gcc main.c -ladd -l. -o add

(l加乙個點表示在當前路徑若不是當前路徑則需要/標明)

main.c程式

add.c程式

sub.c程式

6、如何製作動態庫?

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

gcc -shared -fpic add.c sub.c -o libcal.so

使用:(1)複製到根目錄下編譯(不建議,用完要刪掉否則會降低計算機執行速度)

cp libcal.so/usr/lib

gcc main.c -lcal

(2)在當前目錄下編譯

gcc main.c./lib庫名.so -o 檔名

嵌入式C語言入門 靜態庫 動態庫

編譯時gcc庫包含相關指令 動態庫靜態庫,所有的庫包含在最終可執行檔案中,占用空間大,執行速度快.靜態庫一般以lib開頭命名,以.a字尾結尾 ar rcs lib庫名.a mul.o add.o sub.o gcc 1.c o 1.o libmylib.a 庫檔案在當前目錄下 引數功能 l庫檔案所在...

嵌入式系統設計

嵌入式系統 embedded system 是一種 嵌入機械或電氣系統內部 具有專屬功能的計算機系統 通常要求實時計算效能。被嵌入的系統通常是包含硬體和機械部件的完整裝置。相反,通用計算機如個人計算機則設計靈活,以滿足廣大終端使用者的需求。現在常見的很多裝置都採用嵌入式系統控制。現代嵌入式系統通常是...

嵌入式系統設計2

linux介紹 posix gpl gnu bin系統中的命令,普通使用者命令 sbin管理員的命令 dev系統中所有裝置檔案 etc配置檔案 root使用者的工作目錄 home普通使用者的工作目錄 usr存放第三方安裝軟體 庫檔案 標頭檔案 tmp 一般使用者或正在執行的程式臨時存放檔案的目錄,任...