檔案結構為:
.
├── 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製...