Linux下的库

Posted 用代码创造价值

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下的库相关的知识,希望对你有一定的参考价值。

Linux下的库

库,无论在什么平台下,都只有两种,一种是:
  • 动态库,可以多个共享
  • 静态库,直接编译到软件之中
这种形式,无论在哪里,都不会发生改变!但是,可以会因为平台的不同,而有所不同,例如:
在windwos下是:.lib文件和.dll文件
在Linux下是:.a文件和.so文件
在Mac下是归档文件[我还没了解清楚]

所以,使用平台的不同,有些是不同,但是,原理是一样的,我们只有学会了原理,才可以举一反三,在不同的平台上进行合理的操作和流利的过度

静态库和动态库都各有优缺点,这些优缺点要学会合理利用,而且,每一种方式都要会,这样的话,我们就可以根据实际情况来进行裁剪,对软件进行最合适的配置了
我简单举几个例子:
动态库,可以多个软件共享,而且只有一份,如果,有许多的软件都要共享,那么,这是一种好的方式,比如,百度的地图,就提供了一个so文件,这样的话,所有的机器都可以用,可以不用重新编译
静态库,可以直接编译到软件中,不用拖泥带水,一个软件挂一大堆的动态包,这是一种不友好的行为的,而且,有的软件动态包超级大,而,你又是只用到其中一个小小的功能,这无疑,是一种糟糕的做法!但是,有时候,你也会发现直接编译进软件,会有其他的不好的地方,比如:这个单一的软件,超级大!而且是一个超级大!编译也很浪费时间!

一句话说清楚:大型项目用动态库,小型软件直接静态编译

根据UNIX哲学:不要去创造大的东西,尽量保持简洁,我们一直都是建议,尽可能的小,做到无敌小超人那样!







以上是关于Linux下的库的主要内容,如果未能解决你的问题,请参考以下文章

Linux下用gcc编译C++文件时,所添加的库是默认在哪个目录下的?我用的是Ubuntu12.10的系统。

Linux下gcc生成和使用静态库和动态库详解

Linux下的库操作工具-nmarlddldconfig和ld.so

C语言Linux下动态库和静态库详解

Linux下的库操作工具-nmarlddldconfig和ld.so

部署python项目到linux服务器