Linux--静态库、动态库

我们先简单的编写了一个add.c   sub.c  add.o   sub.o main.c 函数

 1 #include "add.h"
  2 
  3 int add(int a,int b)
  4 {
  5   return a+b;
  6 }
  1 #include "sub.h"
  2 
  3 int sub(int a,int b)
  4 {
  5  return a-b;
  6 }
  1 #ifdef __SUB_H
  2 #define __SUB_H
  3 int sub(int a,int b)
  4 
  5 #endif
  1 #ifndef __ADD_H
  2 #define __ADD_H
  3 
  4 int add(int a,int b);
  5 
  6 #endif
  1 #ifndef __ADD_H
  2 #define __ADD_H
  3 
  4 int add(int a,int b);
  5 
  6 #endif
  1 #include<stdio.h>
  2 #include "add.h"
  3 #include "sub.h"
  4 
  5 int main()
  6 {
  7 int a=10;
  8 int b=2;
  9 printf("%d+%d=%d\n",a,b,a+b);
 10 printf("%d-%d=%d\n",a,b,a-b);
 11 }

一、静态库(快)

            .o  的文件集合

            如何制作?

                    ar -rc lib***.a  .o

                    lib***  : 静态文件名

                    ****  :静态库名


                 如何使用?
                        -l 库名
                寻找库
                        -L 指定库的位置

                    

二、动态库(节省内存)
        制造动态库
        gcc -fPIC(位置无关) -shared -o lib***.so *.c
        编译
        gcc main.c -L. -l***

        运行动态库
        (1) /lib
        /user/lib
        (2)export LD_LIBRARY_PATH =.(指定到当前位置)
         (3) /etc/ld.so.conf.d/***.conf
        ldconfig 刷新缓存






猜你喜欢

转载自blog.csdn.net/Z_JUAN1/article/details/81010526