日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux的常用操作——共享库

發布時間:2024/7/19 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux的常用操作——共享库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.共享庫的命名規則

\qquad共享庫,即動態庫。庫名: lib+庫名+.so

2.共享庫的制作

2.1生成與位置無關的.o文件
gcc -fpic -c filename.c -I 頭文件路徑
2.2生成共享庫
gcc -shared -o 共享庫名 要打包的.o文件 -I 頭文件路徑
2.3生成可執行文件
gcc filename.c 動態庫路徑/庫名 -o 可執行文件名 -I 頭文件路徑

3.動態庫無法被加載

\qquad查看可執行文件動態庫加載情況

ldd 可執行文件

\qquad 需要找動態連接器的配置文件 ld.so.conf

sudo vim /etc/ld.so.conf

\qquad 動態庫的絕對路徑寫到配置文件中
\qquad 更新——sudo ldconfig

4.動態庫實例

  • 目錄結構
  • zhaoxr@zhaoxr-ThinkPad-E450:~/linux$ tree . ├── head │ ├── add.h │ └── mul.h ├── lib │ ├── add.c │ └── mul.c └── source└── main.c3 directories, 5 files
  • 制作動態庫
  • 生成與位置無關的.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

    生成動態庫

    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 files
  • 生成可執行文件
  • zhaoxr@zhaoxr-ThinkPad-E450:~/linux/source$ gcc main.c ../lib/libmylib.so -o app -I ../head/ zhaoxr@zhaoxr-ThinkPad-E450:~/linux/source$ tree . ├── app └── main.c0 directories, 2 files zhaoxr@zhaoxr-ThinkPad-E450:~/linux/source$ ./app a+b=19,a*b=90

    5. 動態庫的優缺點

    \qquad優點:執行程序的體積小;動態庫更新了,不需要重新編譯程序。
    \qquad缺點:發布程序時,需要把動態庫提供給用戶;動態庫沒有加載到應用程序中,所以加載速度會比靜態庫慢一些。

    總結

    以上是生活随笔為你收集整理的linux的常用操作——共享库的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。