库,无论在什么平台下,都只有两种,一种是:
- 动态库,可以多个共享
- 静态库,直接编译到软件之中
这种形式,无论在哪里,都不会发生改变!但是,可以会因为平台的不同,而有所不同,例如:
在windwos下是:.lib文件和.dll文件
在Linux下是:.a文件和.so文件
在Mac下是归档文件[我还没了解清楚]
所以,使用平台的不同,有些是不同,但是,原理是一样的,我们只有学会了原理,才可以举一反三,在不同的平台上进行合理的操作和流利的过度
静态库和动态库都各有优缺点,这些优缺点要学会合理利用,而且,每一种方式都要会,这样的话,我们就可以根据实际情况来进行裁剪,对软件进行最合适的配置了
我简单举几个例子:
动态库,可以多个软件共享,而且只有一份,如果,有许多的软件都要共享,那么,这是一种好的方式,比如,百度的地图,就提供了一个so文件,这样的话,所有的机器都可以用,可以不用重新编译
静态库,可以直接编译到软件中,不用拖泥带水,一个软件挂一大堆的动态包,这是一种不友好的行为的,而且,有的软件动态包超级大,而,你又是只用到其中一个小小的功能,这无疑,是一种糟糕的做法!但是,有时候,你也会发现直接编译进软件,会有其他的不好的地方,比如:这个单一的软件,超级大!而且是一个超级大!编译也很浪费时间!
一句话说清楚:大型项目用动态库,小型软件直接静态编译
根据UNIX哲学:不要去创造大的东西,尽量保持简洁,我们一直都是建议,尽可能的小,做到无敌小超人那样!
时间: 2024-12-29 10:06:45