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...