Linux编译静态库与共享库

时间:2023-03-09 15:54:30
Linux编译静态库与共享库

静态库:

cc  -c   mod1.c  mod2.c        //编译

ar   r     libdemo.a   mod1.o   mod2.o  //生成静态库

cc  -c   prog.c            //编译

cc  prog.o  libdemo.a     -o    prog   //链接

其中-c选项意为只编译不链接

ar    tv   libdemo.a             // 查看libdemo.a包含的目标文件

r:替换

t:目录表

d:删除   

动态库:

1.gcc  -c  -fPIC  mod1.c  mod2.c

2.gcc   -shared   mod1.o  mod2.o   -o   libfoo.so

或者

gcc    -fPIC   mod1.c   mod2.c   -shared    -o    libfoo.so

nm  mod1.o  |  grep  -GLOBAL_OFFSET_TABLE   //确定目标文件编译时是否使用了-fPIC选项