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

路由器做内部网站服务器厦门网站建设公司哪个好

路由器做内部网站服务器,厦门网站建设公司哪个好,公众号涨粉,wordpress底部功能按钮今天我们来讲动静态库#xff01; 首先我们来粗粒度的划分一下动态库和静态库。 动态库就是只有一份库文件#xff0c;所有想用该库的文件与改库文件建立链接#xff0c;然后使用。这样可以提高代码复用率#xff0c;避免重复拷贝产生没必要的内存消耗。 静态库#xf…今天我们来讲动静态库 首先我们来粗粒度的划分一下动态库和静态库。 动态库就是只有一份库文件所有想用该库的文件与改库文件建立链接然后使用。这样可以提高代码复用率避免重复拷贝产生没必要的内存消耗。 静态库就是那个文件想用就直接把库文件的内容拷贝过去这样可以减少出现文件丢失的情况略微提高运行速度但是会造成巨大的空间消耗大多数情况我们都选择动态库 我们来通过写一个简单的计算器去探究动静态库。 首先我们看一下相关文件至于具体的计算器实现代码太简单就不摆了。 这样我们得到所有的.o文件以后给别人就只需要把.o文件和代码丢给别人就可以了。 不需要一大堆之前的头文件源文件了。 于是得到我们的第一个结论 然后我们再来学习静态库的生成。 然后如果我们直接链接就会报一堆错误 这是因为gcc默认不认识第三方库文件所以我们必须要指明文件 但是我们发现仍然不行原因是其真正的名字必须去掉lib和.a才行  然后-L.是表示在什么目录下如果不加报错就加上 -l是用来指明库名字。 如果是c标准库就不用加这些东西所以我们以前从来没有加上过这些东西。 但是如果这个时候我们查ldd发现查不到。也即ldd查的就是动态库的信息静态库一单生成以后就在一起了没有办法查了。 也就是gcc后面如果不加static那么静态库就直接静态链接如果能动态链接就会动态链接。 加上以后则全部静态链接否则直接报错 然后为了方便我们以后交程序给别人所以我们可以创建includelib文件夹分别存放头文件和静态库并且把相关文件拷贝进去。 就可以得到下面的库形式。 如果别人以后安装就可以直接把include文件拷贝到下 lib就可以拷贝到下 然后这个时候再打包的时候再加上-I也即告诉gcc找头文件不仅要在当前目录找系统目录找也要到指定的目录进行寻找 同理我们还要包括库文件于是还要加上后面的语句去链接相关的库文件 接下来我们来制作动态库 与制作静态库的方法不同点是要加上-fPIC选项 具体含义后面解释 然后shared含义也即把所有.o文件打包形成.so文件但不是可执行程序 在静态库的基础上进行修改即可 然后正常进行链接即可目前和静态库的使用没有任何区别。 但是如果我们想运行就会报错 其原因就是因为只告诉了编译器动态库在哪里但是没有告诉操作系统动态库在哪里。操作系统默认只在默认位置进行查找 所有方法一 然后我们直接添加头文件和库文件到操作系统默认位置然后指明库进行链接即可 方法二建立软链接 我们在当前目录下建立一个软链接指向我们的库 同理我们也可以在我们的默认路径加上软连接也可以! 方法三添加到环境变量里面 操作系统还会默认到下面环境变量包括的路径里面找 方法四直接更改系统配置文件 里面只要包含我们动态库的位置就可以了 基本上这些方法就已经非常够用了就不再多说 如果我们就想连接静态库那就加上-static 接下来我们讲如何使用外部库 比如我们接下来就测试链接一个ncurses的库 比如此处我就找了一个贪吃蛇的库我们链接之后就可以通过了 ‘ 然后我们就可以正常使用了 以上就是如何使用别人的库 接下来我们来讲动态库加载原理 在Linux系统下可执行程序的格式是ELF 1首先我们要知道库和程序必须全部加载 2程序没有加载的时候也有地址 首先我们要知道在编译成二进制的时候没有变量名和函数名了而会被直接替换成地址 而这些名字只是用来给人看的机器是不看这些名字的 所有程序在磁盘的时候已经具有了虚拟地址也叫逻辑地址 一般是基地址加偏移量的方式。0~FFFFFFFF 调用函数的时候就是直接调用虚拟地址 这种模式在Linux就被称为平坦模式编址过程中也是规则编址方便使用 于是这样内部函数的相对位置不变加载到内存以后只要知道入口地址那么就可以通过偏移量进行使用相应的函数和变量了 所有也即与位置无关码 3动态库加载到内存并且映射到共享区 这样库在内存就可以只加载一份了就可以大大节约空间了 并且由于我们不能把指定加载到指定空间所以我们需要 并且我们在可执行程序中调用函数的时候我们也只需要记录库地址和方法的偏移量即可 首个虚拟地址 所以我们只需要库加载之后位置是确定的我们之后就可以正常加载了 只要库的位置不再改变 于是我们就可以得出一个结论我们在函数跳转的时候就是在地址之间跳转而已 只不过平时我们只在正文处跳转调用库函数的时候就要跳转到共享区而已 至此动静态库的内容也基本到尾谢谢观看
http://www.hkea.cn/news/14524832/

相关文章:

  • 网站建设中国十强七牛云建网站
  • centos做网站百度竞价推广招聘
  • 嘉兴高端建站公司9377网页游戏
  • 网站建设的流程图示wordpress文章在那个文件夹
  • 免费商城网站建设网站建设 域名主机
  • 河南省示范校建设专题网站中国建设银行账户查询
  • 延边州网站建设网络舆情监测专业就业前景
  • 汕头网站建设方案维护wordpress手机版
  • qt做网站不囤货的网店怎么开
  • 福田网站建设龙岗网站建设罗湖网站建设wordpress网站很卡
  • 第一ppt网站官网网站需要哪些费用
  • 国家建设工程网官方网站wordpress 文章调用
  • 网站建设的利弊wordpress 短链接插件
  • 东莞做网站建设公司建设行业年度峰会网站
  • 婚介 东莞网站建设wordpress对接steam
  • 成都科技网站建设电话多少钱公司网站建设电话
  • 推荐邯郸网站建设ui设计在线培训机构
  • 网站怎么做才吸引人拼团网站开发
  • 一个ip 做2个网站吗广州办营业执照
  • 无二制造 网站升级建设中最近军事新闻热点
  • 设计软件网站制作网站建设天津最新通告今天最新
  • 中国档案网站建设的特点网站制作app
  • 做网站用微软雅黑侵权吗wordpress怎么修改头像
  • 长安区建设局网站线上推广方式有哪些渠道
  • 建设银行网站电脑版wordpress代码风格主题
  • 如何建立自己的摄影网站美食网站首页设计
  • 做网站被骗五千多做网站还需要兼容ie8吗
  • 网站设计的研究方案军事新闻视频
  • 常见网站建设工具有哪些怎么做网站关键词推广
  • 北京最大的网站建设有限公司自己做h5怎么做