• Linux下的库


    Linux下的库

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

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

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

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

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

  • 相关阅读:
    河北省重大技术需求征集七稿第二天
    河北省重大技术需求征集七稿第一天
    CNN网络架构演进
    C++学习-类域、友元、运算符重载、对象的生存期,可见域,作用域(2)
    C++学习-类域、友元、运算符重载、对象的生存期,可见域,作用域(1)
    C++学习-输入输出
    C++学习-new delete扩展
    C++学习-类和对象(2)
    C++学习-类和对象(1)
    C++学习-程序内存分配方式
  • 原文地址:https://www.cnblogs.com/xujintao/p/7093214.html
Copyright © 2020-2023  润新知