-
概念:程序在編譯時會把庫文件的二進制代碼鏈接到目標程序中,這種方式稱為靜態鏈接。
如果多個程序中用到了同一靜態庫中的函數或類,就會存在多份拷貝。
-
特點:
-
靜態庫的鏈接是在編譯時期完成的,執行的時候代碼加載速度快。
-
目標程序的可執行文件比較大,浪費空間。
-
程序的更新和發布不方便,如果某一個靜態庫更新了,所有使用它的程序都需要重新編譯。
-
├── app
│ └── demo.cpp
└── tools
├── public.cpp
└── public.h
靜態庫制作
[root@localhost tools]# g++ -c -o libpublic.a public.cpp
├── app
│ └── demo.cpp
└── tools
├── libpublic.a
├── public.cpp
└── public.h
編譯
g++ -o demo demo.cpp -L/home/root/code/02demo/tools -lpublic
├── app
│ ├── demo
│ └── demo.cpp
└── tools
├── libpublic.a
├── public.cpp
└── public.h
推薦一個零聲學院項目課,個人覺得老師講得不錯,分享給大家:
零聲白金學習卡(含基礎架構/高性能存儲/golang云原生/音視頻/Linux內核)
https://xxetb.xet.tech/s/3Zqhgt