45voiddemo_call(char" />

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

系统 2542 0

[c/c++] linux c生成静态库&共享库 - bluefrog - 博客园

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

静态库

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
          

 

think in coding

[c/c++] linux c生成静态库&共享库 - bluefrog - 博客园


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

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

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

【本文对您有帮助就好】

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

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