step1.首先生成與位置無關的** (生成與位置無關的.o)
gcc -fpic -c *.c -i ../include/
step2.生成動態庫
step3.使用者結合main.c使用動態庫、標頭檔案進行編譯,生成可執行檔案
2.
gcc main.c -i ./include -l ./lib -l mycalc -o mysum 也就是-i 標頭檔案所在目錄 -l 動態庫所在的目錄 -l 動態庫名(掐頭去尾) -o 可執行檔名
發現報錯了!這是為什麼呢?如下圖所示:
裡面說libmycalc.so沒有找到
法1:臨時設定
法2:永久設定
首先,在家目錄下找到.bashrc檔案
在最後一行加上絕對路徑:
export ld_library_path=
/home/shenhang/gcc_about/lib
然後重啟終端就可以了。
法3:修改配置檔案(最常用的方法)
需要找動態聯結器的配置檔案 – /etc/ld.so.conf
動態庫的路徑寫到配置檔案中 – 絕對路徑
更新 – sudo ldconfig -v
加一行絕對路徑:/home/shenhang/gcc_about/lib
sudo ldconfig -v
這樣就可以了。
linux靜態動態庫製作和使用
本質優點 動態庫共享庫的 是在可執行程式執行時才載入記憶體 1.省空間2.bug修復利於維護3.開發效率 靜態庫靜態庫被鏈結後庫就直接嵌入可執行檔案 1.速度快 linux靜態動態庫製作和使用 動態庫步驟 生成.so文檔案 加 fpic和 shard和檔名需lib so 1.1.gcc fpic o...
Linux 靜態庫和動態庫的製作和使用
一 linux作業系統支援的函式庫分支 靜態庫 lib a,在編譯時就將庫編譯進可執行程式 優點 程式的執行環境中不需要外部的函式庫 缺點 可執行程式大 動態庫 又稱共享庫,lib so,在程式執行時將庫載入到可執行程式中 優點 可執行程式小 缺點 程式的執行環境中必須提供相應的庫 函式庫目錄 li...
Linux下靜態庫與動態庫的製作和使用
1 linux作業系統支援的函式庫分為靜態庫和動態庫,動態庫又稱為共享庫。函式庫檔案主要存放在 lib usr lib 2 不管是靜態函式庫還是動態函式庫,都是由 o目標檔案生成 這類庫檔案以lib a 利用靜態函式庫編譯成的檔案較大,因為整個庫的所有資料都會被整合到目標 中。優點 編譯後的程式不需...