weiqi7777

进击吧,linux(三)-Linux动态函数库设计

0
阅读(1484)

 

         上次,制作了静态函数库,动态函数库的制作也是差不多一样的流程。不过动态函数库的后缀是.so

    步骤依然是三步:

1、  使用gcc c .c代码编译成.o

    gcc  c  mylib.c  -o  mylib.o

2、  .o打包成.so

  gcc –shared  -fPIC mylib.o –o libmylib.so

3、  将打包好的.so复制到/usr/lib目录下

  cp libmylib.so /usr/lib

和静态函数库一样,打包的.so一定要是以lib开头的。

下面以一个列子说明,还是使用之前的代码。

按照三个步骤制作好动态函数库。

clip_image002

然后编译自己的应用程序,注意要使用-l指定链接的动态函数库

clip_image004

默认为gcc是使用动态函数库编译的,但是如果使用自己的动态函数库,要加-l属性,指定动态函数库,-l后面是动态函数库的名字,省略掉lib

运行,就有结果了。

使用readelf  –d 查看生成的elf文件

clip_image006

看出,生成的mytaxelf文件,使用了我们之前制作好的动态库,libmytax.so

这样,动态函数库的制作也就搞定了。