gpt4 book ai didi

python - 是否可以更改共享对象文件中的共享库引用?

转载 作者:太空宇宙 更新时间:2023-11-04 02:11:40 25 4
gpt4 key购买 nike

我有一个 .so 文件,其中包含对 /Library/Frameworks/Python.framework/Versions/2.7/Python 的引用(我很难看到这条路径-在 .so 文件中以明文编码)。我无权访问构建 .so 文件的源代码。

我想使用不同版本的 python 库(存储在 /opt/local/Library 中)。是否可以编辑 .so 文件以重新分配此路径?

最佳答案

您可以使用 OS X Xcode 命令行工具中包含的 install_name_tool 永久更改引用。

install_name_tool -change old-lib-path new-lib-path path-to.so

但是,如果 new-path 比原来的 old-path 长,bundle 文件 (.so) 中的字段可能没有空间可以做所以。 install_name_toolman 页面警告:

For this tool to work when the install names or rpaths are larger the binary should be built with the ld(1) -headerpad_max_install_names option.

此外,不能保证您希望使用的新 Python 的构建方式与您尝试修改的 .so 期望的旧共享库兼容。通用 CPU 架构、OS X 部署目标和 Python 构建选项(例如,UCS-2 与 UCS-4)可能存在差异,这可能会阻碍成功。在尝试修改它之前,您应该复制 .so。

关于python - 是否可以更改共享对象文件中的共享库引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13317544/

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