【领卓教育】Linux--静态库与动态库(共享库) 区别、制作和使用

1.概念和区别

     静态库 :(1)libxxx.a ,程序在编译时,将库编译 进可执行程序中!

                     (2)优点:程序的运行环境中不需要外部的库函数!

                     (3)缺点:可执行程序略大

     动态库(共享库):(1)libxxx.so,程序在运行时,将库加载到可执行程序中!

                                      (2)优点:可执行程序小!

                                      (3)缺点:程序的运行环境中必须提供相应的库。

2.静态库的制作和使用。

    静态库的生成(也就是 . a文件的生成),一般分为三个步骤:

   (1)用xxx.c文件  生成      xxx.o文件  

                       gcc  -c  -o  sub.o  sub.c

    (2)用 xxx.o文件生成  libxxx.a文件

                      ar -cr libsub.a sub.o  // 生成libsub.a静态库文件

     (3)编译主程序,链接libsub.a静态库 

                      gcc main.c  -o main  -L.  -lsub // 连接库

                      ./main
   3.动态库的制作与使用。

     (1)用xxx.c文件生成xxx.o文件

                      gcc  -c  -o  add.o  add.c     

     (2)用 xxx.o文件生成libxxx.so文件

                      gcc  -shared  -fpic  -o  libadd.so  add.o

      (3)编译主程序并链接动态库文件

                      gcc  -o  main  main.c  -L.  ladd

      (4)将libadd.so文件复制到系统库目录 /usr/lib

                      cp  libadd.so  /usr/lib

                      ./main      

 以上就是在Linux中静态库和动态库的制作和使用方法,亲测有效哦!

 当然方法不止一种,动态库还有其他的使用方法!注意:在main.c程序中,需要调用静态库   和动态库文件中的函数!

                                                                                                            

                                                                                                            --领卓教育

     

       

猜你喜欢

转载自blog.csdn.net/qq_40876689/article/details/83411218
今日推荐