靜態庫與動態庫

2021-08-02 03:08:26 字數 541 閱讀 6049

gcc -c hello.c 生成hello.o

ar rcs libhello.a hello.o建立靜態庫

靜態庫檔名的命名規範是以lib為字首,緊接著跟靜態庫名,擴充套件名為.a

只需要在使用到這些公用函式的源程式中包含這些公用函式的原型宣告,然後在用gcc命令生成目標檔案時指明靜態庫名,gcc將會從靜態庫中將公用函式連線到目標檔案中。

在寫需要連線的庫時,只寫名字就可以,如libhello.a的庫,只寫: -lhello

gcc -o main main.c -l. -lhello

1.gcc -dynamiclib -o hello.dylib hello.o

目錄下多了 hello.dylib,它就是建立的動態鏈結庫(.dylib是 mac 系統下的,windows 下是.dll, linux 下是.so)

2.gcc -o main1 main.c -l. -lhello

靜態庫與動態庫

linux下靜態庫 a 的例子 mylib.h 位於include資料夾下 ifndef mylib h define mylib h int add int a,int b endif mylib.cpp 位於lib資料夾中 include mylib.h int add int a,int b ...

靜態庫與動態庫

庫本質上是一種可執行的二進位制 可以被作業系統載入 linux和windows的庫是不相容的 庫可以分為靜態塊和動態庫,二者的不同點在於 被載入的時刻不同。靜態庫 在程式編譯時會被連線到目標 中,程式執行時不再需要改靜態庫,體積較大,一般應用與移植過程中在宿主機上編譯的 靜態庫檔名的命名規範是以li...

靜態庫與動態庫

1.靜態庫 工程在呼叫靜態庫時,複製靜態庫,源 加長,不節省程式空間。字尾名.a 優點 程式設計後不需要再依賴庫 以空間換時間 建立靜態庫 gcc c 原始檔.c ar rcs rcu 靜態庫名 目標檔案1 目標檔案2 rc 靜態庫不存在,就建立該庫檔案 s 更新靜態庫 使用 gcc o file ...