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

张掖网站建设公司wordpress xampp 本地 慢

张掖网站建设公司,wordpress xampp 本地 慢,庆阳网站设计服务,温州网络问政平台官网静态库与动态库 A#xff1a;静态库#xff08;.a#xff09;#xff1a;程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库。 B#xff1a;动态库#xff08;.so#xff09;#xff1a;程序在运行的时候才去链接动态库的代码#… 静态库与动态库 A静态库.a程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库。 B动态库.so程序在运行的时候才去链接动态库的代码多个程序共享使用库的代码。 C一个与动态库链接的可执行文件仅仅包含它用到的函数入口地址的一个表而不是外部函数所在目标文件的整个机器码。 D在可执行文件开始运行以前外部函数的机器码由操作系统从磁盘上的该动态库中复制到内存中这个过程称为动态链接dynamic linking。 E动态库可以在多个程序间共享所以动态链接使得可执行文件更小节省了磁盘空间。操作系统采用虚拟内存机制允许物理内存中的一份动态库被要用到该库的所有进程共用节省了内存和磁盘空间。 举个例子 测试程序add.hint add(int a, int b);add.c#include add.h int add(int a, int b) {return a b; }sub.hint sub(int a, int b);sub.c#include add.h int sub(int a, int b) {return a - b; }main.c #include stdio.h #include add.h #include sub.h int main(void) {int a 10;int b 20;printf(add(%d,%d)%d\n, a, b, add(a, b));a 100;b 20;printf(sub(%d,%d)%d\n, a, b, sub(a, b)); } 生成静态库 生成静态库  ar是gnu归档工具rc表示(replace and create) 查看静态库中的目录列表 t:列出静态库中的文件v:verbose 详细信息 -L 指定库路径 -l 指定库名 测试目标文件生成后静态库删掉程序照样可以运行 库搜索路径 A从左到右搜索-L指定的目录。 B由环境变量指定的目录 LIBRARY_PATH C由系统指定的目 a/usr/lib b/usr/local/lib 生成动态库 Ashared: 表示生成共享库格式 BfPIC产生位置无关码(position independent code) C库名规则libxxx.so 为什么要先gcc -fPIC -c sub.c add.c 编译源代码gcc 是 GNU 编译器集合用于编译 C 或 C 源代码文件.c 文件。 生成对象文件-c 选项告诉 gcc 编译源文件但不要进行链接。编译后生成的目标文件也称为对象文件扩展名为 .o例如 sub.o 和 add.o。 位置无关代码Position Independent Code, PIC-fPIC 选项指示 gcc 生成位置无关代码。这是创建共享库shared libraries所必需的因为共享库的代码在内存中的位置可能会在不同的程序中变化而它需要能够在这些不同位置正常工作。 准备共享库生成的对象文件.o 文件是准备创建共享库的中间步骤。共享库在运行时被动态加载到内存中并且可以在多个进程之间共享。 避免重复编译如果源代码没有变化使用 -fPIC 编译生成的对象文件可以被重用无需重新编译源代码这可以加快编译过程。 模块化将不同的功能模块编译成单独的对象文件可以提高模块化和可维护性。如果只需要更新或重新编译一个模块不需要重新编译整个程序。 优化和错误检查编译每个文件为单独的对象文件允许编译器对每个模块进行优化并且在编译过程中可以单独检查每个模块的错误。 兼容性使用 -fPIC 选项可以确保编译出的对象文件既可以用于生成共享库也可以用于生成静态库或直接链接到可执行文件中。 总结来说gcc -fPIC -c sub.c add.c 命令的目的是将 sub.c 和 add.c 这两个源文件编译成位置无关的对象文件为下一步生成共享库或静态库做准备。这样做可以提高代码的可重用性、模块化和编译效率。 使用动态库 编译选项 l链接动态库只要库名即可(去掉lib以及版本号) L链接库所在的路径 运行动态库 1、拷贝.so文件到系统共享库路径下, 一般指/usr/lib 2、更改 LD_LIBRARY_PATH LD_LIBRARY_PATH 是一个在类 Unix 系统中使用的环境变量它对动态链接器的行为有直接影响。 定义 LD_LIBRARY_PATH 用于在运行时指定动态链接器搜索共享库如 .so 文件的路径。这个环境变量可以包含一个或多个以冒号:分隔的目录路径。 工作原理 当一个程序启动时如果它依赖于动态链接的共享库动态链接器通常是 ld.so 或 ld-linux.so将负责加载这些库。动态链接器会按照以下顺序搜索库 程序的 rpath如果存在这是编译时嵌入到程序可执行文件中的库搜索路径。LD_LIBRARY_PATH 环境变量如果程序没有 rpath 或者 rpath 中没有找到所需的库动态链接器会接着在 LD_LIBRARY_PATH 指定的路径中搜索。系统的默认库路径如果以上两个步骤都没有找到库动态链接器会最后在系统的标准库路径如 /lib, /usr/lib, /lib64, /usr/lib64 等中搜索。 3、ldconfig 配置/etc/ld.so.conf.d/ldconfig更新 ldconfig 会读取 /etc/ld.so.conf 文件以及 /etc/ld.so.conf.d/ 目录下的所有配置文件这些文件定义了动态链接器搜索共享库的路径。根据这些配置文件ldconfig 会搜索指定的目录查找共享库文件通常是 .so 文件并更新 /etc/ld.so.cache 文件。 http://t.csdnimg.cn/FY6prhttp://t.csdnimg.cn/FY6pr [rootlocalhost linux]# cat /etc/ld.so.conf.d/bit.conf/root/tools/linux[rootlocalhost linux]# ldconfig 动态库与静态库的区别  静态链接 静态库在编译期间将库中的代码加载到程序里加载成功后后续与库无关。(编译成库后把库删掉也能用)。 动态链接 动态库是运行时加载的运行时要找到动态库的位置(操作系统知道)加载并运行运行的过程中不能离开库本身。 静态库优缺点 优点运行速度较快运行时无需动态链接。 缺点占用内存大不同的进程要使用静态库都要拷贝一份。维护成本高静态库一旦更新程序也要随之再编译一次。 动态库优缺点 优点占用内存小多进程之间可以共享资源。维护成本较低更新是只需要重新加载动态库即可。 缺点运行时相对于静态库来说较慢因为要通过指定的路径找到动态库。
http://www.hkea.cn/news/14290162/

相关文章:

  • 简历制作网站哪个好来广营做网站公司
  • wordpress建站什么意思甘南州城乡建设局网站
  • 网站首页快照云龙主机 wordpress
  • 上海的招聘网站有哪些强化门户网站建设
  • 贵州省城乡建设厅网站首页西宁百度推广公司电话
  • 深圳专业网站建设产品运营之中的广度讲解银川市建设厅网站
  • 中山优秀网站建设博宇娱乐网站建设
  • 做矿业的郑州公司网站做百度手机网站优化快
  • 做网站常用软件泗水县最新消息
  • 因脉网站建设公司怎么呀韩国怎么样优化关键词排名
  • 陕西省住房与城乡建设部网站婚纱制作网站
  • 网站建设策划书封面小程序开发工具编辑器
  • asp网站安装教程黄埔网站建设(信科网络)
  • dw网站开发环境wordpress建站打不开二级页面
  • 互联网站备案登记表wordpress页面模板是哪个文件
  • 阿里云公司网站制作微信公众号软文怎么写
  • 西安哪家做网站最好wordpress高级自定义字段怎么显示
  • 动漫网站建设毕业设计wordpress 更换语言包
  • 阿里云网站方案建设书内容管理系统开源
  • 网站seo搜索引擎优化案例网站 什么语言开发的
  • 网站右下角代码免费网页建设
  • 进口食品销售销售在那个网站做简述主要的电子商务网站有哪些
  • 做网站商丘汽车网站更新怎么做
  • 装潢建筑公司网站设计国家高新技术企业牌匾
  • 东莞网站推广渠道有哪些上海php做网站
  • 服务器哪些端口可以做网站动态的网页制作
  • 网站开发网页权限如何控制wordpress建网 打不开
  • 流量网站建设dw做的网站怎么放到服务器上
  • 做会计网站的流程WordPress自动采集翻译插件
  • 帮人做设计的网站微信息公众平台微网站建设