Linux 上的共享库有哪些好的做法?

2024-01-24

我最近阅读了很多有关 Linux 上共享库的内容,以下是我学到的内容:

  • 共享库应该嵌入一个soname包括其主要版本号。就像是:libfoo.so.1
  • 其真实文件名还应包含次要版本号。就像是:libfoo.so.1.0
  • 当库文件被复制到时,比如说/usr/local/lib, if ldconfig运行时,它将读取soname并创建一个名为的符号链接libfoo.so.1指向libfoo.so.1.0.
  • 如果想使用这个库进行开发,应该首先创建一个没有任何版本号的符号链接到真实文件,比如说libfoo.so指向libfoo.so.1.0。这通常是由发展包(当库被打包时)。

它是否正确 ?


建议阅读:

Ulrich Drepper 的《如何编写共享库》:http://www.akkadia.org/drepper/dsohowto.pdf http://www.akkadia.org/drepper/dsohowto.pdf

Ulrich Drepper 在库设计、实施和维护方面的良好实践:http://www.akkadia.org/drepper/goodpractice.pdf http://www.akkadia.org/drepper/goodpractice.pdf

dsohowto 更详细。好的做法是快速阅读。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 上的共享库有哪些好的做法? 的相关文章

随机推荐

  • 使用 Jersey 客户端的连接池

    我对泽西岛很陌生 我进行了搜索 但无法弄清楚是否有办法进入泽西客户 to use 连接池而不是每次发送新请求时都创建连接 整个想法是重用池中的连接集 这将节省大量资源 仅供参考 我不是在寻找连接 保持活动状态 这就是我现在正在做的事情 pu
  • 使用约束 B 样条线近似形状轮廓

    我正在寻找一种生成约束样条线的可能性 以近似形状 在我的例子中 是足迹轮廓 作为原始数据 我有一个包含数百个 xy 坐标对的表 这些坐标是从足迹边界收集的 样条曲线应该只近似数据点 样条曲线不需要通过数据点 我希望能够在一定程度上平滑样条线
  • {m}{n}(“正好n次”两次)是如何工作的?

    所以 以某种方式 玩弄 我发现自己有一个正则表达式 比如 d 1 2 从逻辑上讲 对我来说 这应该意味着 一个数字恰好一次 恰好两次 即一个数字正好两次 但事实上 它似乎只意味着 一个数字恰好一次 因此忽略了 2 String regex
  • 如何在 PHP 中创建受密码保护的存档文件?

    我需要能够使用 PHP 创建带有密码保护的存档 zip 文件 我正在使用 Laravel 5 4 和 PHP 7 1 版本 我看了这个链接here http php net manual en class ziparchive phpPHP
  • 未调用导航栏约 8 像素内的触摸事件

    我有一个带有三个按钮的应用程序 实际上UIView s 水平放置下导航栏 这三个按钮的尺寸足够大 例如 比后退按钮大 但是当点击大致位于顶部三分之一部分时 它们不会响应触摸 我知道导航栏正下方的这个区域是为后退按钮和其他 UINavigat
  • iPhone 上的滚动 div 无需使用 2 个手指?

    我的 iPhone 应用程序中嵌入了 UIWebView 我希望始终在页面上保留锁定的页眉和页脚 DIV 并具有可滚动的中心 DIV 我知道我可以使用 UIView 控件的页眉 页脚来做到这一点 但我希望页眉和页脚是 HTML div 因为
  • rollup 是否将node_modules 捆绑到bundle.js 中?

    我正在试驾rollupjs https rollupjs org using rollup with npm将节点应用程序打包成bundle js我很困惑 rollup 是否支持捆绑全节点应用程序 包括node modules 或者只是项目
  • Kubernetes 中 Docker 容器内的互联网连接

    我有一个基于 jenkins slave 容器的 Kubernetes pod 我在特权模式下安装了 docker 套接字和 docker 二进制文件以及必要的内核模块 在该 pod 内 我构建了 Docker 镜像 并在该镜像上运行 do
  • 使用 xlrd 在 Python 3 中将 xls 转换为 csv

    我使用带有 xlrd 和 csv 模块的 Python 3 3 将 xls 文件转换为 csv 这是我的代码 import xlrd import csv def csv from excel wb xlrd open workbook M
  • 如何以树(多维数组)的形式存储和检索 Apache Solr 字段?

    我需要将结果存储和检索为多维树 而不是平面 键 gt 值 对 让我用一个例子来解释 我有很多类别的产品 每个类别都有一个优先级值 样本结构 name Sample Product categories category Category 1
  • NOT IN 查询不起作用,SQL Server 2008

    之前查询的第一部分not in运行并给我一个包含 100 条记录的列表 第二个查询运行并给出 75 条记录的列表 我正在尝试编写的查询not in是获取一个结果集中的记录 而不是另一个结果集中的记录 我得到的错误是incorrect syn
  • 如何查找我的系统中安装了哪个版本的 TensorFlow?

    我需要找到我安装的 TensorFlow 版本 我正在使用 Ubuntu 16 04 长期支持 这取决于您安装 TensorFlow 的方式 我将使用与TensorFlow的安装说明 https www tensorflow org ver
  • SharePoint Designer 工作流程 - 提示和资源?

    我正在努力修改一些现有的 SPD WF 并努力解决一些概念 包括为什么 2 个看起来相似的 WF 不会产生相同的输出 你们中是否有人使用过 SharePoint Designer 工作流并知道任何好的资源 比 MSDN 介绍更详细 或有关此
  • 如何隐藏 UIImagepickercontroller 中的状态栏?

    我是 iOS 开发新手 我试图隐藏状态栏UIImagePickerController 每当我单击 拍照 时 就会出现状态栏 它并不隐藏 我希望状态栏仅隐藏在UIImagePickerController 这是我的代码 IBAction t
  • 在机器对机器场景中使用 MSAL 作为 CSP

    我正在尝试使用官方 nuget 库来使用 GraphAPI https github com microsoftgraph msgraph sdk dotnet https github com microsoftgraph msgraph
  • 播放框架WS url空间

    我在 play 框架 2 3 3 中调用 WS url 时遇到问题 其中 url 包含空格 所有其他字符均自动进行 url 编码 但空格除外 当我尝试将所有空格更改为 20 时 WS 由于 字符而将其转换为 2520 对于空格 我得到了 j
  • 为什么锁定 std::mutex 两次“未定义行为”?

    按照这个article http www devx com SpecialReports Article 38883 1954 如果您尝试从同一线程两次锁定非递归互斥锁 而中间没有解锁 则会出现未定义的行为 我非常天真的想法告诉我为什么他们
  • Neo4j 2.0 双类型转储

    在 Neo4j 2 0 社区 上 当我转储包含一些具有 Double 类型属性的节点的数据库时 我获得一个具有科学记数法值的文件 ex 1 43524185E8 导入此文件时 neo4j shell 失败并出现以下错误 Invalid in
  • 在 Eclipse (App Engine) 项目中包含 JAR 文件

    我今天和昨天几个小时都在寻找这个问题的解决方案 所以我决定在这里解决它 尽管这似乎是一个愚蠢的问题 情况 我在 Eclipse Java EE 中设置了一个 Google AppEngine 项目 它已经存在了好几个星期 一切都运行良好 我
  • Linux 上的共享库有哪些好的做法?

    我最近阅读了很多有关 Linux 上共享库的内容 以下是我学到的内容 共享库应该嵌入一个soname包括其主要版本号 就像是 libfoo so 1 其真实文件名还应包含次要版本号 就像是 libfoo so 1 0 当库文件被复制到时 比