静态库
libdemo.h
1 // libdemo.h 2 #ifndef _LIBDEMO_H 3 #define _LIBDEMO_H 4 5 void demo_call( char * msg); 6 7 #endif
libdemo.c
1 // libdemo.c 2 #include " libdemo.h " 3 #include <stdio.h> 4 5 void demo_call( char * msg) 6 { 7 printf( " %s\n " ,msg); 8 }
编译库文件
# 编辑成目标文件 gcc -c libdemo.c - o libdemo.o # 创建存档文件 ar rcs libdemo.a libdemo.o
测试文件testdemo.c
1 #include " libdemo.h " 2 3 int main() 4 { 5 demo_call( " hello " ); 6 return 0 ; 7 }
gcc testdemo.c -o testdemo -static -L. -ldemo
./testdemo
共享库
gcc -fPIC -g -c libdemo.c - o libdemo.o gcc -g -shared -WL,-soname,libdemo.so -o libdemo.so. 1.0 . 0 libdemo.o - lc ln -s libdemo.so. 1.0 . 0 libdemo.so gcc testdemo.c -o -L. - ldemo # 为了能让. / testdemo执行需要将.so 加入到库里 export LD_LIBRARY_PATH =$( pwd ) . /testdemo