静态库
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
    
  


 
					 
					