45voiddemo_call(char*msg)6{7printf("%s\n",msg);8}编译库文件#编辑成目标文件gcc-clibdemo.c-" />

[c/c++] linux c生成静态库&共享库

系统 2250 0

静态库

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
    

 

[c/c++] linux c生成静态库&共享库


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论