gpt4 book ai didi

linux - 链接库的 2 个冲突版本

转载 作者:太空宇宙 更新时间:2023-11-04 12:43:03 28 4
gpt4 key购买 nike

第三方供应商正在向我发布一个预构建的安全库,但我无法访问它的代码或 makefile。这个库是针对特定版本的 openssl 和 protobuf 编译的。问题是,我使用的应用程序 chromium 也在使用这两个库的修改版本(好吧,技术上 boringssl 不是 openssl;但它们共享符号)。它们正在使用 Chrome 源进行编译并静态链接。当我将安全库添加到 Chromium 时,我最终得到了 2 个针对不同 header 编译的库和对象的冲突版本。这当然会导致运行时崩溃和不可预测的结果。我能做些什么来确保一切都正确链接并且符号不冲突吗?

最佳答案

Is there anything I can do to make sure that everything is linked properly and symbols do not clash?

你唯一真正的选择是:

  1. 在第 3 方库上使用 dlopen(..., RTLD_LOCAL);
  2. 请供应商为您提供一个针对 Chromium 树构建的版本。
  3. 完全停止使用这个第 3 方库。
  4. Petesh 提出的解决方案——将 openssl 和 protobuf 静态链接到第 3 方库并隐藏它们的符号——看起来是另一种可能性,但有许可方面的问题。看起来 protobuf 和 openssl 都允许二进制重新分发,因此这实际上可能有效,但 IANAL。

关于linux - 链接库的 2 个冲突版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39608186/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com