018 C語言靜態庫動態庫

2021-06-23 02:30:48 字數 914 閱讀 1089



linux下

c語言程式設計環境

頭檔案目錄:/usr/include/

庫目錄:/usr/lib/

動態庫與靜態庫的區別:在電腦程式源**需要通過翻譯、彙編、鏈結過程而生成可執行檔案,再由載入器載入到記憶體,兩者區別就在於程式載入時鏈結到相應庫的方式不同,程式編譯時指定了靜態庫,編譯後可直接執行,而編譯時指定動態庫時,編譯後還要先指定庫的路徑。

靜態庫:

ar -rs libmy_math.a *.o

生成靜態庫libmy_math.a

ar -t

檢視靜態庫

gcc test.c -l. -lmy_math - o test 

使用靜態庫編譯生成可執行檔案

動態庫:

gcc -fpic *.o 

生成動態庫對應的.o檔案

gcc -shared -o libmy_math.so *.o

生成動態庫

gcc test.c -lmymy_math -o test

使用動態庫編譯生成可執行檔案

移動my_math.h

檔案到/usr/include/

移動libmy_math.so

檔案到/usr/lib/

當不移動my_math.h

和libmy_math.so

檔案時,必須配置環境指定庫的路徑:

export  ld_library_path=$ld_library_path:.

echo $ld_library_path:.    檢視環境有沒有手動配置

更新動態庫:當實現介面的函式功能發生變化時,只需重新生成動態庫覆蓋原來的動態庫即可,而不需要重新編譯test.c檔案

第三方軟體:

框架:帶主函式的c檔案

元件:函式庫

C語言 靜態庫與動態庫

一.靜態庫 靜態庫 要被包含到源程式中的庫 1.優點執行速度快 2.缺點占用系統資源比較多 3.使用的場合對時間要求很高的場合 4.靜態庫的製作 1 把所有的源程式 c檔案 製作成目標檔案 o 檔案 gcc c mul.c o mul.o gcc c sub.c o sub.o gcc c add....

c 靜態庫動態庫

靜態庫 gcc c a.cpp o a.o gcc c b.cpp o b.o ar rcs libmylib.a a.o b.o 使用庫 2種方式 1 gcc test.c o test l 指定庫路徑 i 大寫i 頭檔案目錄 l 庫名字,去除前字尾 2 將庫和標頭檔案拷貝到 usr lib下面 ...

C語言如何編譯動態庫與靜態庫

關於動態庫與靜態庫的作用這裡就不在詳細贅述了,重點說一下如何編譯動態庫與靜態庫及使用,一些大型的程式一般擁有著良好的架構,各個功能模組之間能夠相互協調工作,達到預期的效果,但有的程式並不是所有的原始碼都是自己編寫,特別像是用到晶元廠商的提供的庫 能夠把這些融合起來的就是需要提供的庫 原料 test1...