代码之家  ›  专栏  ›  技术社区  ›  user82238

Linux下的静态库安装-应该类似于动态库安装吗?

  •  1
  • user82238  · 技术社区  · 15 年前

    我花了一上午的时间研究如何在makefile中在linux下安装共享库。

    好吧,我现在有了我的共享对象和一对指向它的软链接,其中一个是ldconfig创建的,另一个是我创建的。

    现在,我也可以将我的库构建为静态库。

    当我检查/usr/lib时,我看到.a文件就在那里。文件名中没有符号链接,没有版本和版本号的排列。

    我应该像排列共享对象那样用符号链接来排列静态库,还是实际上习惯于将未经修饰的静态库放入/usr/local/lib?

    1 回复  |  直到 15 年前
        1
  •  1
  •   P Shved    15 年前

    与共享库不同,静态库放在 /lib 不要参与动态链接依赖项解析。它们只在您构建应用程序时使用。因此,不需要在文件名中插入符号链接和精确的版本号。

    当您将应用程序与静态库链接时,链接器只嵌入其中一个库的代码 /LIB 文件夹。如果在另一个系统上,同名的静态库不同,应用程序甚至不会知道这一点。因为它包含编译时使用的静态库的代码,不需要在运行它的系统中查找它。

    因此,静态库的安装应该不同于共享库的安装:在 /LIB 目录实际上是必需的。