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

品牌建设的过程seo详细教程

品牌建设的过程,seo详细教程,apache创建WordPress,建设工程建筑网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.hrbkazy.com/news/33412.html

相关文章:

  • 建一个英文网站需要多少钱微信软文推广怎么做
  • 日照网站建设网站优化如何优化seo关键词
  • 网站开发的招标参数aso如何优化
  • 网站建设合作方案信息流广告投放公司
  • 网站建设色系搭配口碑营销成功案例简短
  • 建站基础网站模板价格
  • 建网站 陕西牛人网络科技电商运营工作内容
  • 如何快速创建网站上海百度seo公司
  • 网站空间管理站内推广有哪些具体方式
  • 长沙圭塘网站建设公司网站开发流程的8个步骤
  • wordpress 显示分类名称福州短视频seo服务
  • 网站路径优化怎么做石家庄关键词排名提升
  • 专门做汽车动力性测试的网站汕头网站制作设计
  • 网站建设方案撰写竞价排名的定义
  • 广州派出所门户网站域名免费注册
  • 高端定制网站建设制作怎样在百度做广告宣传
  • 腾虎广州网站建设怎样交换友情链接
  • 百度网盟 网站定向投放最佳的搜索引擎
  • 沧州网站建设培训产品怎么在网上推广
  • 怎么做网站百度网址是多少 百度知道
  • 做新闻网站犯法吗百度账号登陆入口
  • 益阳做网站接app推广接单平台
  • 青岛栈桥景点介绍windows清理优化大师
  • 私域运营软件学seo网络推广
  • 深圳做棋牌网站建设网络推广怎么做?
  • 关于节约化建设网站的表态发言谷歌排名优化入门教程
  • 如何做网站的自由撰稿人网站服务器ip查询
  • 初学网站建设家电企业网站推广方案
  • 上海平台网站建设费用怎么写网站
  • 企业网站管理系统添加教程整站优化网站