2.靜態庫與共享庫

靜態庫

打包命令:ar -r libbase.a add.o sub.o
查看歸檔文件內容:ar -t libbase.a
從歸檔文件中分解文件:ar -x libbase.a -o [add.o]
使用靜態庫:gcc main.o -L../lib -lbase -o ../bin/app

動態庫

生成動態庫命令:

$ gcc -c -fPIC add.c sub.c
$ gcc -shared add.o sub.o ../lib/libbase.so

使用動態庫:

$ gcc -c main.c -o main.o
$ gcc main.o -L../lib -lbase -o ../bin/app

靜態庫和共享庫的區別

  • 靜態庫被鏈接後直接嵌入可執行文件中,被幾個文件鏈接就有幾份複製
  • 動態庫在運行時被鏈接,磁盤上只保留一份
  • 靜態庫被修改,需要重新編譯鏈接該庫的所有程序。
  • -static選項指定鏈接靜態庫
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章