当前位置: 首页 > news >正文

web网站开发与管理宁宁网seo

web网站开发与管理,宁宁网seo,常用的网络营销的手段有,爱网站关键词查询工具长尾Linux C语言 34-库封装操作 本节关键字:C语言 封装库 动态库 相关C库函数: 什么是库? 库是现成的,可以复用的代码。从本质上看,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。在C语言的编…

Linux C语言 34-库封装操作

本节关键字:C语言 封装库 动态库
相关C库函数:

什么是库?

库是现成的,可以复用的代码。从本质上看,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。在C语言的编程中,把某些功能性的函数放在一个链接库里再提供给其他人使用的过程叫做制作库(封装库)。C语言中有两种库:

  • 动态库(.a、.lib)
  • 静态库(.so、.dll)

静态库

在链接阶段将汇编生成的目标文件.o与引用的库一起链接打包到可执行文件中,该过程的链接方式称为静态链接,生成的库称为静态库。
静态库的特点:

  • 静态库对函数库的链接是在编译时期完成的
  • 程序在运行时与函数库无联系,移植方便
  • 占用更多的内存空间,因为所有相关的目标文件和库文件都被链接合成一个可执行文件
  • 更新麻烦,每次更新都需要全量更新

静态库的生成与调用

Linux系统中静态库的命名规范必须是“lib[name].a”:lib前缀,中间是静态库名称,扩展名为.a

静态库的创建

$ gcc -c test.c
$ ar -crv libtest.a test.o

静态库的使用

(1)包含头文件
(2)调用静态库中的函数
(3)编译时加上指定静态库:gcc testlib.c -L. -ltest

动态库

动态库是一种不可执行的二进制文件,它允许程序共享执行特殊任务。与静态库不同的是,动态库是程序在执行时才进行加载。

动态库的作用

  • 代码复用
  • 动态库对函数的链接是在运行时完成的
  • 节约内存,不同进程调用相同的库,可实现进程之间的资源共享(因此动态库也被称为共享库)
  • 更新时只需更新相关的动态库(增量更新)

动态库的生成与调用

Linux系统中动态库的命名规范必须是“lib[name].so”:lib前缀,中间是静态库名称,扩展名为.so

动态库的创建

$ gcc -shared -fPIC test.c -o libtest.so

-shared 是生成动态库
-fPIC 生成位置无关代码,默认添加

动态库的使用

(1)包含头文件
(2)调用动态库中的函数
(3)编译时加上指定动态库:gcc testlib.c -L. -ltest

动态库找不到的问题解决

(1)将.so文件拷贝到 /usr/lib 目录下
(2)更新环境变量:export LD_LIBRARY_PATH=[动态库所在的绝对路径]
(3)将动态库所在的绝对路径添加到 /etc/ld.so.conf 文件里;然后重新加载配置文件 /sbin/ldconfig

gcc相关编译选项

  • -shared 生成动态链接库
  • -static 生成静态链接库
  • -fIPC 编译为位置独立的代码,用于编译动态库(共享库)。目标文件需要创建成位置无关代码,在程序装载动态库的时候,动态库可以放在程序内存的任何地方
  • -L 要链接的库所在的目录
  • -l 指定链接时需要的动态库。编译器查找动态库时有隐含的命名规则,即“lib[name].so”或“lib[name].a”
  • -Wall 生成所有警告信息
  • -ggdb 将尽可能生成gdb可以使用的调试信息
  • -g 编译器在编译的时候产生调试信息
  • -c 只激活预处理、编译和汇编,也就是将程序做成目标文件(.o文件)
  • -Wl,options 把参数(options)传递给链接器ld,如果options中间有都逗号,就将options分成多个选项,然后传递给链接程序

库查看命令

查看可执行程序依赖的动态库

例如:查看可执行程序 mytest 的依赖动态库
$ ldd mytest

查看库中的函数列表

例如:查看 test.so 中的函数有哪些
$ nm test.so

http://www.15wanjia.com/news/2440.html

相关文章:

  • 杭州做网站吧拓客软件排行榜
  • wordpress2019谷歌字体无锡seo网络推广
  • 昆山专业网站建设公司哪家好近几年的网络营销案例
  • 网站包含什么友情链接外链
  • 网站建设上海手机百度快照
  • 网站防止盗图seo优化排名价格
  • 什么专业会制作网站自媒体运营
  • 番禺哪里有做网站的公司站内推广有哪些方式
  • )网站开发架构师广告推广怎么找客户
  • 跨境电商app开发长沙seo就选智优营家
  • 微网站的好处网站seo是啥
  • 大庆哈尔滨网站建设品牌软文营销案例
  • 北京网站优化方法买友情链接有用吗
  • wordpress借贷网站排名seo教程
  • 集团网站建设方案百度推广竞价排名技巧
  • wordpress always西安seo
  • 网页制作与网站建设完全学习手册下载网站seo招聘
  • 佛山建网站永网品牌推广公司
  • 昆明网站建设公司排行网页自助建站
  • 高端企业佛山seo关键词排名
  • wap手机网站模版sem竞价推广是什么意思
  • 开个微网站需要什么优化关键词软件
  • 琼海做球网站整合营销什么意思
  • 网站建设流程今日疫情最新情况
  • 淮安市建设监理协会网站如何在百度上发布自己的广告
  • 游戏秒玩网站seo监控系统
  • 欧美网站建设排名大全西安百度百科
  • wordpress 主题语言seo排名优化软件有用
  • 免备案网站制作搜索引擎营销的特点有
  • 手机网站建设需要多少钱企业seo的措施有哪些