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

无锡网站制作b站是哪个网站

无锡网站制作,b站是哪个网站,网站开发验收单,北京企业网站设计方案一.动静态库的理解。 1.什么是库? 代码是无穷无尽的,当程序猿在写一些项目时,未必所有代码亲历亲为,他们可以在网上寻找大佬写过的一些有关需求的代码,这些代码可以让他们拿过来直接使用,而省去了许多精力…

一.动静态库的理解。

1.什么是库?

代码是无穷无尽的,当程序猿在写一些项目时,未必所有代码亲历亲为,他们可以在网上寻找大佬写过的一些有关需求的代码,这些代码可以让他们拿过来直接使用,而省去了许多精力。把一些代码进行打包,形成的便是库了。 


上面所说,库就是将代码进行打包。这个说法是方便读者理解而所说的。要想进一步的理解库,我们要对程序的编译过程进行简单理解。 

程序的编译有四道工序预处理,编译,汇编,链接。

预处理:头文件展开,去注释,条件编译,宏替换。.c->.i

编译:将代码编译为汇编代码。.i->.s

汇编:将汇编代码转为可重定位的二进制文件。.s->.o

链接:链接库文件,形成可执行程序。.o->exe


库文件便是.o文件的集合,当程序猿拥有了.o文件,每次复用这些代码就不需要从头开始编译,只需要拥有这些.o文件和对应的头文件,就可以轻松的使用别人的代码,在自己的.c文件中包头文件,编译时进行库的链接。 

2.动静态库的区别

静态库:以拷贝的方式,将方法的集合(库)直接拷贝到可执行程序中
动态库:以动态链接的方式,将要链接的库函数地址拷贝到可执行程序中

静态库将方法的集合(库)直接拷贝可执行程序中就决定了这个可执行程序在运行的时候不再需要库文件,可以在随意运行,但把库直接拷贝到可执行程序当中会导致可执行程序体积巨大

 动态库相较于静态库更加灵活,可以做到一库同时被多个可执行程序使用,每个可执行程序内部只有库函数的地址,并不是将整个库内置入可执行程序中,让可执行程序体积小巧

linux系统中:静态库后缀为.a 动态库后缀为.so

windows系统中: 静态库后缀为.lib 动态库后缀为.dll

二.动静态库的制作和使用。

接下来亲手制作动静态库来感受:

静态库的制作和使用:

我们将要制作一个简易的math库,库中包含加减乘除四种方法。在main.c中调用这些方法。

 

 我们将mathlib文件夹中的.c文件全部编译为.o二进制文件

 .c文件已经没用了,删除

现在这个mathlib文件夹中只有头文件和二进制.o文件了,我们将所有.o文件打包形成静态库,使用命令:

ar -rc libmath.a *.o   //将所有.o二进制文件打包形成math静态库

库已经制作完毕,将所有.o文件删除

 现在mathlib文件夹中仅有静态库和头文件了。下面尝试编译main.c

这里涉及gcc编译时的一些选项: 


动态库的制作和使用:

动态库的制作和静态库的制作在.o文件打包之前完全相同,在.o文件打包形成动态库的时候改为gcc的命令:

gcc -shared -o libmath.so *.o

编译时和静态库做法也相同

只不过在运行可执行程序时会报错:原因是没有将可执行程序和动态库建立动态链接

下面提供多种动态链接的方法:

1.将动态库拷贝到系统库目录/usr/lib64中(运行时默认会在这里查找需要的库)

2.将动态库拷贝到可执行程序所在的目录 (运行时默认会在当前目录查找需要的库)

3.建立软链接(在当前目录或者/usr/lib64目录)

ln -s lib/mathlib.so mathlib.so

4.设置环境变量(LD_LIBRARY_PATH,默认会在这个环境变量里查找需要的库)

5.创建系统关于动态库的配置文件,

touch /etc/ld.so.conf.d/dy.conf

然后在新建的配置文件中添加动态库的绝对路径。

http://www.sczhlp.com/news/29769/

相关文章:

  • 章丘网站建设哪家好网络推广工作好干吗
  • 展示型网站建设网站目录
  • WordPress评论加入ip上海seo推广公司
  • 旅游网站建设外现状西安网站建设维护
  • 乐清网站网络公司网络营销推广有效方式
  • 汕头网站建设设计价格武汉好的seo优化网
  • 网页设计居中代码杭州关键词优化外包
  • 购物商城网站建设流程建一个app平台的费用多少
  • 做公司网站有什么需要注意的站长之家产品介绍
  • 手机app与手机网站的区别品牌营销策划案例
  • 做网彩网站公司员工培训内容有哪些
  • qq登录网站怎么做免费的黄冈网站有哪些平台
  • 合肥网站开发建设单页网站seo如何优化
  • 官网是怎么做的湖南网站seo公司
  • python可以做复杂网站ip域名查询网
  • 人工智能研究中心的跨国合作与技术发展
  • 为什么你应该学习编程——5大好处及入门指南
  • 网站建设 海外房产seo收录查询工具
  • 做网站没有数据网络广告策划书案例
  • 我是做颗粒在什么网站上永久免费wap自助建站
  • 做最好言情网站公司怎么做网站推广
  • 网站地图的作用企业seo网络推广
  • 影响网站建设的关键点推广如何做网上引流
  • 读大语言模型04提示词的力量
  • 网站中的qq客服怎么做的网站关键词优化的价格
  • 做电影网站用什么虚拟主机全国疫情最新名单
  • 网站开发的目的和意义西安seo排名
  • 网站列表页框架布局原则怎么做好网络营销推广
  • 日照外贸网站建设百度网盘客服24小时电话人工服务
  • 网站上的滚动条是如何做的长沙网站seo优化公司