Linux下建立靜態庫、動態庫以及簡單的makefile
Linux下建立靜態庫、動態庫以及簡單的makefile。
建立靜態庫
建立四個檔案 bin(可執行檔案),lib(庫),include(標頭檔案),src(放原始檔)
這裡的起的庫明為add
在src檔案中執行
1)gcc -c add.c //編譯add.c原始檔生成add.o目標檔案
2)ar crsv ../lib/ libadd.a add.o //對目標檔案*.o進行歸檔,生成lib*.a, 把這個生成檔案放在lib裡
3)gcc -o main main.c -L(大些的愛偶,放庫的路徑)../lib –l(小寫的愛偶,庫名為add) add –I(大寫的i) ../include(放標頭檔案)
建立動態庫
gcc -fPIC -c add.c ../include(放標頭檔案) 生成add.o目標檔案
gcc -shared -o libadd.so add.o 生成libadd.so動態庫 這個庫的名是add
將這個庫放在根目錄的lib檔案裡
gcc -o main main.c –l add ../include(放標頭檔案) (注意這裡寫的庫名,沒有lib和.so)
動態庫與靜態庫比較:
動態庫只在執行的時候才被連結使用
動態庫可以被多個程式使用,所以也稱共享庫
靜態庫將會整合大程式中,程式執行是不用夾在靜態庫,因此靜態庫會是程式臃腫難以升級,但比較容易部署
動態庫便於升級,但不容易部署
使用makefile
三個檔案 bin(可執行檔案),include(標頭檔案),src(放原始檔)
目標項 依賴項
./bin/main:./src/my_add.o ./src/my_minus.o ./src/main.o //將*.o檔案 生成可執行檔案
g++ ./src/my_add.o ./src/my_minus.o ./src/main.o -o ./bin/main -I ./include
./src/my_add.o:./src/my_add.cpp
g++ -c ./src/my_add.cpp -o ./src/my_add.o -I ./include // 生成my_add.o
./src/my_minus.o:./src/my_minus.cpp
g++ -c ./src/my_minus.cpp -o ./src/my_minus.o -I ./include //生成my_minus.o
./src/main.o:./src/main.cpp
g++ -c ./src/main.cpp -o ./src/main.o -I ./include //生成main.o
相關文章
- linux下靜態庫、動態庫編譯及makefile書寫Linux編譯
- 簡述Linux下的靜態庫和動態庫Linux
- Linux環境下建立靜態庫和動態庫Linux
- linux下的靜態庫與動態庫Linux
- Linux 依賴動態庫 / 靜態庫的動態態庫 / 靜態庫Linux
- Linux下的靜態庫、動態庫和動態載入庫Linux
- Linux下的共享庫(動態庫)和靜態庫Linux
- 一、靜態庫和動態庫,Makefile專案管理專案管理
- 在Linux中建立靜態庫和動態庫Linux
- Windows靜態庫和動態庫的建立和使用Windows
- Linux共享庫、靜態庫、動態庫詳解Linux
- android下java的靜態庫和動態庫AndroidJava
- 靜態庫與動態庫
- linux 動態庫 靜態庫 函式覆蓋Linux函式
- Linux 中的靜態庫和動態庫簡介及生成過程示例Linux
- ios靜態庫和動態庫iOS
- 動靜態庫
- 動態庫和靜態庫的區別
- Linux下靜態庫的生成以及使用例項圖解Linux圖解
- Linux靜態庫和動態庫學習總結Linux
- 靜態庫和動態庫的製作以及Bundle資原始檔的使用
- Linux下靜態庫生成指南Linux
- Linux下快速靜態編譯Qt以及Qt動態/靜態版本共存Linux編譯QT
- 封裝動態庫dll與靜態庫lib(原理及簡單例項)封裝單例
- cmake:生成靜態庫和動態庫
- linux下靜態連結庫和動態連結庫的區別有哪些Linux
- iOS動態庫和靜態庫的運用iOS
- ios靜態庫與動態庫的區別iOS
- C靜態庫的建立與使用--為什麼要引入靜態庫?
- 一個可以自動生成靜態庫,自動安裝程式的Makefile
- Linux 動態庫與靜態庫製作及使用詳解Linux
- linux成長之路(gcc編譯器、靜態庫、動態庫)LinuxGC編譯
- 動態連結庫與靜態連結庫
- 菜鳥教程——iOS動態庫與靜態庫iOS
- iOS 靜態庫(.a, .framework) 動態庫(.framework, dylib)iOSFramework
- iOS中的動態庫,靜態庫和framework介紹iOSFramework
- C++靜態庫與動態庫深入研究C++
- 動態連結庫和靜態連結庫的區別