有關庫的詳情介紹:
https://www.cnblogs.com/sunsky303/p/7731911.html
https://blog.csdn.net/wk_bjut_edu_cn/article/details/81735956
靜態函數庫,是在程式執行前(編譯)就加入到目標程式中去了 ;
優點: 執行快
發佈程式無需提供靜態庫,因爲已經在app中,移植方便
缺點:大
動態函數庫,是在程式執行時動態(臨時)由目標程式去呼叫
靜態庫的製作:格式xxxx.a
第一步:
gcc calcufuncs.c -c 生成xxx.o檔案碼片
第二步:
ar rcs libcalcufunc.a calcufuncs.o xxx.o檔案生成xxx.a靜態庫檔案
動態庫的製作:
gcc -shared -fpic calcufuncs.c -o libcalc.so
-shared 指定生成動態庫
-fpic 標準,fPIC 選項作用於編譯階段,在生成目標檔案時就得使用該選項,以生成位置無關的程式碼。
靜態庫:
gcc calculatorT.c -lcalcufunc -L ./ -o mainProStatic
-lcalcufunc -l是制定要用的動態庫,庫名砍頭去尾
-L告訴gcc編譯器從-L制定的路徑去找靜態庫。預設是從/usr/lib /usr/local/lib去找
動態庫的使用和靜態庫一樣
帶動態庫的程式,可以指定該程式執行時候在" LD_LIBRARY_PATH "s\所指定的路徑去找庫
export LD_LIBRARY_PATH = "/home/pi/back/test"
自己指定路徑