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

武安市城乡建设局网站b站推广入口2023mmm

武安市城乡建设局网站,b站推广入口2023mmm,东台专业做网站的公司,html标签大全及用法目录 一、静态库 (1)静态库的优缺点: (2)Linux下静态库的创建和执行 1.直接编译​编辑 2.指定路径和库名 3.用LIBRARY_PATH环境变量来配置路径 二、动态库 (1)动态库的优缺点 &#xff…

     

目录

一、静态库

(1)静态库的优缺点:

(2)Linux下静态库的创建和执行

        1.直接编译​编辑

2.指定路径和库名

3.用LIBRARY_PATH环境变量来配置路径

二、动态库

(1)动态库的优缺点

(2)Linux下动态库的创建和执行

三、动态库的动态加载

(1)dlopen

(2)dlsym

(3)dlclose

(4)dlerror

(5)辅助工具


        在一个大的项目中,通常都是多人协作开发的,会产生许多的.c文件,但是我们就会出现一些问题-----怎么把这些.c文件生成的二进制文件整合成一个可执行程序呢?

        我们有两种方法:静态库和动态库

一、静态库

(1)静态库的优缺点:

优点:

        1.静态库被打包到了应用程序中,运行速度快(因为不需要实时的链接库文件)

        2.发布的程序不需要提供静态库,因为静态库的二进制文件已经被打包在了可执行程序中

        3.保密性好,静态库方式是将可执行程序发布出去(不涉及源代码的发布)

缺点:

        1.代码冗长,用户需要下载很久

        2.不利于维护和更新(因为代码已经是固定的了,而动态库是运行时跳转到该函数)

(2)Linux下静态库的创建和执行

        1.直接编译

(用ar打包成静态库)(用gcc生成可执行程序)

        这里红色圈出来的都是LInux下创建静态库的几个关键点,可以看到在没有.o文件的时候,编译器是不能够将main.c变为可执行程序a.out的,必须要依赖于静态库libAdd.a

2.指定路径和库名

        如果静态库不在同一个目录下呢?这个时候我们就需要用-l 和-L选项了。

        其中-l选项后面跟的是静态库的库名(掐头去尾只保留中间的部分)

        而-L选项后面跟的是该静态库的路径(比如这里他就在当前目录下,所以路径是.)

3.用LIBRARY_PATH环境变量来配置路径

        这里要注意一点:我们直接使用是不行的,因为配置的是自定义的环境变量(只有bash可以使用),但是gcc是bash的儿子,所以不能使用,需要将这个环境变量变成全局的才能让他的儿子使用,于是我们就要用export将其转换为全局的环境变量。这时候才可以使用

二、动态库

(1)动态库的优缺点

优点:

        1.可执行程序文件体积小,节省空间

        2.由于是链接起来再使用的,便于更新和维护

缺点:

        1.文件执行的相对速度比较慢

        2.文件运行需要依赖于动态库,如果动态库缺失则不能正常运行        

(可以看到动态库中没有把库中的二进制代码拷贝到调用处,而是一个跳转的指针---链接器)

(这里的LD_LIBRARY_PATH环境变量是给链接器使用的,能在运行时动态链接)

(2)Linux下动态库的创建和执行

        (用gcc打包成动态库)(用gcc生成可执行程序)

但是动态库的创建和静态库的使用方法是一样的,都存在三种方式:

1.直接编译

2.指定路径和库名

3.用LIBRARY_PATH来配置路径

        如果直接运行a.out这个可执行程序,会出现一个问题:动态库是在程序执行的时候,由链接器去完成函数间的跳转的,怎么样让链接器去知道路径从而找到动态库呢?

        我们只需要配置LD_LIBRARY_PATH这个环境变量就可以了,这样就可以告知链接器在执行的时候的动态库路径了

我们可以总结一下:

三、动态库的动态加载

        

(1)dlopen

        (注意这里如果只给出了文件名,而没有带目录,则会根据LD_LIBRARY_PATH环境变量的值去搜索动态库)

(2)dlsym

因为他的返回值是void*类型,如果我们需要的函数不是这个类型呢?

则先把这个函数的返回值强转成我们需要的类型,再赋值给左边的函数指针

(3)dlclose

(4)dlerror

这个dlerror( )函数就好像我们c语言中的errno,他随时记录的是最近一次发生错误的原因

(5)辅助工具

http://www.hkea.cn/news/454614/

相关文章:

  • 国内优秀的响应式网站深圳专业seo外包
  • 重庆装修价格c盘优化大师
  • 银行网站 设计方案外包优化网站
  • 做网站是学什么专业软件外包企业排名
  • wordpress商城 中文站百度站长平台网址
  • 建手机网站的软件有哪些南宁百度seo价格
  • 做网站私活长沙网络营销公司
  • 网站建设公司 广告法被处罚沧州网络推广外包公司
  • 电商网站 开发成本惠州seo外包服务
  • 佛山做网站建设价格百度网盘官方下载
  • 网上购物商城网站建设个人免费域名注册网站
  • 成都学网站建设电子营销主要做什么
  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码网络推广员招聘
  • 网站后台怎么添加图片视频app推广
  • 网站秒收录怎么做的经典软文案例和扶贫农产品软文
  • 珠海疫情最新情况厦门搜索引擎优化
  • 中国菲律宾历史战绩网站关键词优化工具
  • 西宁网站建设最好的公司哪家好优秀网站设计案例
  • 沧州做网站费用搜索引擎优化是做什么的
  • 社区网站推广方案线上运营的5个步骤
  • 湘潭学校网站建设 z磐石网络网站关键词优化教程
  • wordpress多程序用户同步汕头seo排名
  • 旅游网站 建设平台分析百度seo一本通
  • 怎么用dw做网站app开发网站
  • 昆山做网站的公司有哪些seo整站优化推广
  • 网站建设谈单情景对话青岛seo百科
  • 网站做自适应好不好网页分析报告案例
  • 大连手机自适应网站建设公司seo诊断站长
  • 有哪些好的网站十大电商代运营公司
  • 个人网页设计欣赏网站整站优化快速排名