linux的常用操作——共享库
生活随笔
收集整理的這篇文章主要介紹了
linux的常用操作——共享库
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.共享庫的命名規(guī)則
\qquad共享庫,即動(dòng)態(tài)庫。庫名: lib+庫名+.so
2.共享庫的制作
2.1生成與位置無關(guān)的.o文件
gcc -fpic -c filename.c -I 頭文件路徑2.2生成共享庫
gcc -shared -o 共享庫名 要打包的.o文件 -I 頭文件路徑2.3生成可執(zhí)行文件
gcc filename.c 動(dòng)態(tài)庫路徑/庫名 -o 可執(zhí)行文件名 -I 頭文件路徑3.動(dòng)態(tài)庫無法被加載
\qquad查看可執(zhí)行文件動(dòng)態(tài)庫加載情況
ldd 可執(zhí)行文件\qquad 需要找動(dòng)態(tài)連接器的配置文件 ld.so.conf
sudo vim /etc/ld.so.conf\qquad 動(dòng)態(tài)庫的絕對(duì)路徑寫到配置文件中
\qquad 更新——sudo ldconfig
4.動(dòng)態(tài)庫實(shí)例
生成與位置無關(guān)的.o文件
zhaoxr@zhaoxr-ThinkPad-E450:~/linux/lib$ gcc -fpic -c mul.c add.c -I ../head/ zhaoxr@zhaoxr-ThinkPad-E450:~/linux/lib$ tree . ├── add.c ├── add.o ├── mul.c └── mul.o0 directories, 4 files生成動(dòng)態(tài)庫
zhaoxr@zhaoxr-ThinkPad-E450:~/linux/lib$ gcc -shared -o libmylib.so mul.o add.o -I ../head/ zhaoxr@zhaoxr-ThinkPad-E450:~/linux/lib$ tree . ├── add.c ├── add.o ├── libmylib.so ├── mul.c └── mul.o0 directories, 5 files5. 動(dòng)態(tài)庫的優(yōu)缺點(diǎn)
\qquad優(yōu)點(diǎn):執(zhí)行程序的體積小;動(dòng)態(tài)庫更新了,不需要重新編譯程序。
\qquad缺點(diǎn):發(fā)布程序時(shí),需要把動(dòng)態(tài)庫提供給用戶;動(dòng)態(tài)庫沒有加載到應(yīng)用程序中,所以加載速度會(huì)比靜態(tài)庫慢一些。
總結(jié)
以上是生活随笔為你收集整理的linux的常用操作——共享库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络——物理层设备
- 下一篇: python-非负矩阵分解-NMF