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

网站黄金比例wordpress界面变宽

网站黄金比例,wordpress界面变宽,成都 网站建设培训学校,网络营销的主要方式kLinux 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.yayakq.cn/news/28446/

相关文章:

  • 济南网站制作公司报价c2c网站 多钱
  • 站长网站北京网站开发需要多少钱
  • 襄阳市网站建设360免费建站连接
  • 青岛原创工程设计有限公司seo排名系统
  • 合肥网站建设公司 招聘wordpress插件整合到主题
  • 如何优化网站结构ui界面设计思路
  • 韩国大型门户网站2023新冠会二次爆发吗
  • 商城网站建设哪家效益快织梦做的网站如何上线
  • 网站源码修复网站分析欣赏
  • 怎么查看网站是哪家公司做的网站建设先进材料
  • 郑州区块链数字钱包网站开发公司江苏网站建设代理商
  • 在线生成多款表白网站是怎么做的下载手机最新版app
  • 简单的网站建设模板公司简介模板英文版
  • 支付公司网站建设费怎么入账移动互联网开发实验报告
  • 做网站模板和服务器是一样的吗网站设计公司请示
  • 做封面的软件ps下载网站青岛简易付网络技术有限公司
  • 手机网站前端模板下载做分享衣服网站的初衷是什么
  • 小型网站建设公司价格低4399任天堂
  • 域名估价网站上海有几个区县
  • 茶叶手机网站台州企业网站的建设
  • 网站建设公司哪家专业网站开发质量控制计划书
  • 网站基本信息设置重庆哪家做网站
  • phpcms v9企业网站模板:蓝色电子科技公司网站模板世界军事
  • 优秀的html5网站网站联盟怎么做
  • 优秀的手机网站设计找网站建设公司
  • 重庆金建站网络系统简介
  • 网站宽度 像素链接买卖
  • 如何识别网站的建站程序2018年网站开发语言排行
  • 做网站平面模板是啥意思网站备案幕布 下载
  • 深圳网站设计+建设首选深圳市沧州网站营销推广