linux下静态库、动态库的编译和使用

1、CC 、cc 、gcc 、g++ 的区别: 

      CC 是Unix下老的商用c语言编译器,或者是Makefile中指向gcc的一个内建变量;

      cc 在linux下是gcc的一个符号链接;

      gcc (GNU Compiler Collection)多种语言编译器的集合,很强大,一般用来编译链接C/C++语言;

      g++ C++语言编译链接器,编译期间实际调用的是gcc,待日后慢慢熟悉;

 

2、生成可执行文件:

      $ gcc -o main main.c a.c b.c   由源文件main.c经过编译-->汇编-->链接 生成可执行文件main

      $ ./main                                 执行!

 

3、生成静态库:

      $ gcc -c a.c b.c                        由源文件a.c编译生成a.o目标文件

      $ ar cr libtest.a a.o b.o           由刚才生成的目标文件生成静态库文件libtest.a

      $ gcc -o main main.c -L.-llibtest

            编译链接生成可执行文件main,-L制定静态库的搜索路径,-l制定链接库的名字

      $ ./main                                  执行!

 

4、生成动态库

      $ gcc -c -fPIC a.c  b.c                                  生成PIC(Position-Independent-Code)目标文件

      $ gcc -shared -fPIC -o libtest.so a.o b.o     生成共享库libtest.so

      $ gcc -o main main.c -L. -ltest                     生成可执行文件

      $ export LD_LIBRARY_PATH=$PWD            设置共享库搜索路径

      $ ./main                                                      执行!

 

5. 生成内核模块

...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值