动、静态库的生成和使用

库       

环境是CentOS 7 

库文件:不包含main函数的函数文件(里面有.c和.h文件)

由于.h文件是.c文件的头文件,预处理会直接加载处理到.c中,所以在生成库文件时,只需要处处理.c文件

一下演示的库文件是 main.c   生成的动态库文件是  libchild.so 生成的静态库文件是libchild.a

库文件的命名习惯

动态库文件

静态库文件

lib+文件名+.so

lib+ 文件名 +.a

库的生成

动态库的生成

静态库的生成

gcc -c main.c -o main.o 【只有当文件编译成机器语言程序时,才能进行下一步的链接操作】

gcc --share main.o -o llibchild.so

ar -cr libchild.a main.o

 

 

库的使用                

生成可执行程序时的库文件的搜索路径

 

 

命令实例

命令解释

1、生成一个可执行程序时,如需要第三方库,需要将第三方库放置在指定路径下     /lib64     /usr/lib64

gcc main.c -o mian -lmychild

把一个main.c文件生成一个main的可执行程序,-o是指定生成可执行程序的名字。-l后面紧跟库名称(库文件的命名是 [ lib名称.so]),这里的child就是库名称

2、也可以指定一个环境变量 expert LIBRARY_PATH=.      来指定库文件的搜索路径

expert LIBRARY_PATH=路径

3、也可以是gcc 的-L选项指定库文件的链接路径

gcc main.c -o mian -L . -lmychild

下面这个多加来   【-L 搜索路径】

 


执行可执行程序时库文件的搜索路径(使用静态库生成的可执行程序不需要加载库文件)

 

1、程序运行时,需要到指定的目录下加载动态库      /lib64     /usr/lib64      ······

把库文件放置在  /lib64     /usr/lib64      ······

2、也可以使用 expert LD_LIBRARY_PATH=.   环境变量来设置,来声明程序运行时的库的加载路径

expert LD_LIBRARY_PATH=路径      添加环境变量

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值