靜態庫與動態庫的製作與使用

2022-09-18 07:09:33 字數 1055 閱讀 5625

#生成目標檔案

gcc -c add.c -o add.o

gcc -c sub.c -o sub.o

#製作靜態庫

ar -rcs libmylib.a add.o sub.o

在使用ar工具是時候需要新增引數:rcs

gcc main.c -l[靜態庫路徑] -i[標頭檔案路徑] -lmylib[庫名] -o main

引數說明:

gcc -fpic -c add.c -o add.o

gcc -fpic -c sub.c -o add.o

#-fpic 建立與位址無關的目標檔案

gcc -shared add.o sub.o -o libmylib.so

#生成共享庫,-shared

gcc main.c -l[動態庫路徑] -i[標頭檔案路徑] -lmylib[庫名] -o main

拷貝自己製作的共享庫到/lib或者/usr/lib(不能是/lib64目錄)

臨時設定ld_library_path:export ld_library_path=$ld_library_path:庫路徑

永久設定,把export ld_library_path=$ld_library_path:庫路徑,設定到

~/.bashrc或者/etc/profile檔案中

vim ~/.bashrc

#最後一行新增如下內容:

#export ld_library_path=$ld_library_path:/home/me/mylib/

source ~/.bashrc

使用符號鏈結, 但是一定要使用絕對路徑

sudo ln -s /home/me/mylib/libtest.so /lib/libtest.so

Linux靜態庫與動態庫製作及使用

一 二者區別 1 靜態庫是在程式執行前就加入到目標程式中去 動態庫程式執行的過程動態的由目標程式去呼叫 2 靜態庫對空間要求不高,對時間要求高 動態庫對時間要求不高,對空間要求高 二 庫製作 同一目錄下有三個檔案 主 hellomain.c 頭 hellomain.h功能 hellofunc.c 1...

動態庫與靜態庫的製作(詳細)

之前一直對動態庫靜態庫這個概念很模糊,到了快找實習的時候,決定認真地學一遍,畢竟這到了公司之後會經常用到。下面是我自己學習的一些筆記 簡單地來說 個人的理解,可能有偏差,希望大神指正 1 在編譯生成二進位制檔案時,動態庫的源 沒有放到二進位制檔案中,編譯時需要告訴編譯器動態庫的路徑 2 在編譯生成二...

Linux平台靜態庫 動態庫的製作與使用

一 靜態庫 當前目錄結構 code include head.h library dynamic library static library src c 11 thread createlib add.c div.c main.c mult.c sub.c include目錄存放標頭檔案 src目...