gcc編譯C檔案,生成呼叫靜態庫

2021-07-24 15:24:19 字數 781 閱讀 5243

檔案結構為:

.

├── include

│ ├── blaswrap.h

│ ├── clapack.h

│ ├── f2c.h

│ ├── hello.h

│ ├── add

.h├── lib

│ ├── blas_linux.a

│ ├── lapack_linux.a

│ └── libf2c.a

├── src

│ ├── hello.c

│ ├── add

.c│ └── test.c

其中 test.c 呼叫hello.c 和add.c

add.c 呼叫clapack

目的是把hello.c 和add.c 打包成靜態庫,test.c 直接呼叫

gcc -c ./src/*.c -i ./include

ar rcs libtest.a hello.o add.o

gcc -o test test.o libtest.a ./lib/lapack_linux.a ./lib/blas_linux.a ./lib/libf2c.a -lm

新增優化選項 -o2

用到數學庫,要用鏈結 -lm

編譯多個原始檔 .c 檔案,用 *.c

gcc -o2

-o test *

.c -lm

用gcc編譯生成靜態鏈結庫 a檔案的方法

1 用gcc的 c選項生成.o檔案,如 gcc c test1.c test2.c test3.c 編譯後會生成test1.o test2.o test3.o三個目標檔案。2 然後用ar命令生成.a檔案,如 ar crv test.a test1.o test2.o test3.o 我們知道靜態庫也...

gcc編譯靜態庫 動態庫

今天,乙個同事編譯靜態庫,我也趁此機會在溫習一下,先google一下,然後在自己實驗。首先,在網上抄個例子,內容如下 建靜態庫 hellos.h ifndef hello s h define hello s h void prints char str endif hellos.c include...

GCC 編譯 靜態庫 動態庫

工作流程 命名格式 lib 庫的名字 so製作 第一步 得到 o檔案 引數 fpic表示生成與位置無關 gcc i.include fpic c c第二步 建立動態庫 shared 製作動態庫 o 重新命名生成的新檔案 gcc shared o lib so o使用 命名格式 lib 庫的名字 a製...