gpt4 book ai didi

xcode - 如何安装 ld 未明确支持的 DYLD 加载器命令?

转载 作者:行者123 更新时间:2023-12-02 07:07:53 24 4
gpt4 key购买 nike

在 Mac OS X 上,DYLD 格式的二进制可执行文件包含“加载器命令”,指示库加载系统如何处理文件的内容。特别是,加载器命令指示系统应在何处搜索依赖库等。

您可以通过运行“otool -l/path/to/your/app”来查看系统上任何二进制文件的加载程序命令的完整列表。

一般来说,这些加载器命令是在项目编译的链接阶段由“ld”工具设置的。

我的问题是,我需要做什么来为 ld(显然)不支持的公开类型添加加载器命令?

特别是,我想利用 LC_DYLD_ENVIRONMENT 加载器命令,该命令可用于指定二进制文件的加载器命令表中的字符串,该字符串应作为可执行文件上下文中的环境变量设置进行加载和评估.

我没有看到任何 ld 的论据可以促进这一点。我想要的是类似“-sectcreate”但专门添加到加载器命令内容的东西。

我知道这是可能的,因为 Mac OS X 上至少有一个标准应用程序使用它:Safari。但我不知道他们是否通过某种二进制后链接按摩来实现这一点,如果他们使用知道如何构建和链接自定义加载程序命令的 ld 自定义版本,或者他们是否正在利用我无法弄清楚 ld 命令的通用功能。

最佳答案

看起来您可以使用 -dyld_env,如下所示:“-dyld_env DYLD_FRAMEWORK_PATH=/”。这没有记录在手册页中,但可以在 ld64 的 Options.cpp 中找到,并在 Changelog 文件中提到。如果您尝试从 Xcode 执行此操作,则可能必须这样做:“-Xlinker -dyld_env -Xlinker DYLD_FRAMEWORK_PATH=/”。

需要注意的一点是:如果你查看 dyld 的 dyld.cpp,你会发现它只允许以 DYLD_ 开头并以 _PATH 结尾的环境变量。

关于xcode - 如何安装 ld 未明确支持的 DYLD 加载器命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8188698/

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