Linux下静态库和动态库的制作

一、静态库和动态库的特点:

       静态库:libxxx.a,在编译的时候,就将库编译进可执行程序中

                     优点:程序的运行环境中不需要外部库函数

                     缺点:程序运行较大

                     运用:先创建出源文件sub.c,然后根据:gcc -c sub.c -o sub.o,生成sub.o文件(目标文件)。紧接着运用静态库创建指令:ar -cr  libsub.a  sub.o,创建出静态库。

                                然后调用gcc main.c -L. -lsub

                                即可生成a.out文件

                     例子: 

main:


#include <stdio.h>

int main()
{
   int x = 2,y = 3;
   int net;
   net = sub(x,y)
   printf("net is %d \n",net);
   return 0;

}
int sub(int x,int y)
{
   return (x-y);
}

 

       动态库:libxxx.so,在运行中,将库加载到可执行程序中、

                     优点:程序运行较小

                     缺点:程序的运行环境中必须添加相应的库函数。

                     运用:先创建源文件sub.c,然后根据:gcc -c sub.c -o sub.o,生成sub.o文件(目标文件)。生成目标文件后,再根据:gcc -fpic -shared -o libsub.so sub.o指令,生成libsub.so文件,然后根据:gcc -o main main.c  -L. -lsub

                                但是这个时候我们还是不可以编译成功使用的,我们的动态库需要在我们的lib文件下,才可以使用

                                也可以改变环境变量,达到编译成功的目的:export LD_LIBRARY_PATH=/home/自己的用户名/

                                

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值