linux的常用操作——静态库
生活随笔
收集整理的這篇文章主要介紹了
linux的常用操作——静态库
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.靜態(tài)庫的制作
1.1靜態(tài)庫的命名
\qquad靜態(tài)庫一律使用lib打頭,靜態(tài)庫名為:lib+靜態(tài)庫的名字+.a。比如:libmylibrary.a,這里面lib和.a是必須要有的。使用nm命令可以查看靜態(tài)庫。
nm 靜態(tài)庫名1.2靜態(tài)庫的制作步驟
\qquad第一步:將.c文件生成.o文件,比如將hello.c轉(zhuǎn)變?yōu)閔ello.o文件。
gcc -c hello.c -o hello.o\qquad或者
gcc hello.c -c\qquad第二步:使用ar將生成的.o文件打包
ar rcs 靜態(tài)庫的名字 生成的所有.o文件1.3發(fā)布和使用靜態(tài)庫
gcc filename.c 靜態(tài)庫的路徑/靜態(tài)庫名 -o 可執(zhí)行文件名 -I 頭文件的路徑\qquad或者
gcc filename.c -I 頭文件路徑 -L 靜態(tài)庫路徑 -l 靜態(tài)庫名 -o 可執(zhí)行文件名2.靜態(tài)庫的優(yōu)缺點
2.1靜態(tài)庫的優(yōu)點
\qquad 1.發(fā)布的程序,即編譯完成后的可執(zhí)行文件,不再需要庫函數(shù)。
\qquad 2.加載庫的速度快
2.2靜態(tài)庫的缺點
\qquad 1.庫被打包到應(yīng)用程序中,導(dǎo)致應(yīng)用程序體積變大。
\qquad 2.庫如果發(fā)生了改變,需要重新編譯。
3.靜態(tài)庫制作實例
這里的靜態(tài)庫不包含主函數(shù)的.c文件,只是把實現(xiàn)打包成靜態(tài)庫,
首先將功能模塊的.c文件編譯為.o文件,
zhaoxr@zhaoxr-ThinkPad-E450:~/linux/lib$ gcc -c add.c -o add.o zhaoxr@zhaoxr-ThinkPad-E450:~/linux/lib$ gcc -c mul.c -o mul.o zhaoxr@zhaoxr-ThinkPad-E450:~/linux/lib$ tree . ├── add.c ├── add.o ├── mul.c └── mul.o0 directories, 4 files然后生成靜態(tài)庫
zhaoxr@zhaoxr-ThinkPad-E450:~/linux/lib$ ar rcs libmylib.a add.o mul.o zhaoxr@zhaoxr-ThinkPad-E450:~/linux/lib$ tree . ├── add.c ├── add.o ├── libmylib.a ├── mul.c └── mul.o0 directories, 5 files總結(jié)
以上是生活随笔為你收集整理的linux的常用操作——静态库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络(一)-概述(补充)
- 下一篇: linux的常用操作——用户的添加、删除