gcc之動態庫 靜態庫製作

2022-08-15 03:15:12 字數 748 閱讀 3360

靜態庫製作、編譯:

gcc -c -o main.o  main.c

gcc -c -o sub.o   sub.c

gcc -c  -o sub2.o   sub2.c

ar  crs  libsub.a  sub.o sub2.o(可以使用多個.o生成靜態庫)

gcc  -o  test  main.o  libsub.a  (如果.a不在當前目錄下,需要指定它的絕對或相對路徑)

動態庫製作、編譯:

gcc -c -o main.o  main.c

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

gcc -c -fpic -o sub2.o   sub2.c

gcc -shared  -o libsub.so  sub.o sub2.o (可以使用多個.o生成動態庫)

gcc -o test main.o  -lsub  -l /libsub.so/所在目錄/

動態庫執行:

① 先把libusb.so放到pc或板子上的/lib目錄,然後就可以執行test程式。

② 如果不想把libusb.so放到/lib,也可以放在某個目錄比如/a,然後如下執行:

export ld_library_path=$ld_library_path:/a 

./test

參考:我使用過的linux命令之ar - 建立靜態庫.a檔案

關於linux靜態庫和動態庫的分析

linux共享物件之編譯引數fpic

GCC靜態庫 動態庫

1 靜態庫 linux環境下的靜態庫的擴充套件名為 a step 1 編譯原始檔,生成可重定位目標檔案 gcc c static lib.c step 2 使用ar工具建立乙個靜態庫,或者將目標檔案加入到乙個已經存在的靜態庫中。格式 ar rcs 靜態庫名 目標檔案2 目標檔案2 目標檔案n ar ...

Linux下靜態庫 動態庫製作及gcc命令詳解

乙個c語言程式從編寫完成到執行需要經歷預處理 生成.i 編譯 生成.s 彙編 生成.o 鏈結 生成可執行檔案 幾個步驟,如下圖所示。這裡推薦一篇講解的比較全面的部落格 gcc常用引數詳解。我們最常用的gcc編譯選項主要有以下幾個 以下是幾篇講的比較好的部落格 靜態鏈結就是在執行之前講已經編譯好的靜態...

Linux下gcc使用與動態庫靜態庫製作

1.gcc工作流程 1.預處理 gcc e 2.編譯 gcc s 3.彙編 gcc c 4.鏈結 沒引數 2.常用引數 o 指定生成的檔案的名字 d 在編譯的時候定義巨集 控制log的輸出 i 指定標頭檔案的路徑 g gdb除錯的時候需要新增該引數 o 編譯優化,3個等級 o 1 3 wall 編譯...