由于一段不幸的历史,OpenAL.framework 包含 ALUT 1.0 的符号。我正在开发一个受益于 ALUT 1.1 的项目,因此我将 ALUT 编译为一个框架(来自 freealut 源代码)。
不幸的是,这意味着在 ALUT.framework 和 OpenAL.framework 中都定义了某些符号,我真的需要一种方法来确保优先选择 ALUT 符号。我在链接命令上在 OpenAL 之前订购了 ALUT,因此在最终二进制文件的 otool 输出中,但是(由于延迟绑定?)在一种情况下选择了 OpenAL 符号。(实际上在应用程序关闭时,alutExit 调用出错了)
我意识到这与 dyld 的设计不一致,但我坚持使用官方的 Apple OpenAL 框架。我可以破解我的 ALUT 框架以使用自定义符号名称,但我希望有一个更简洁(如果 hacky)的解决方法来强制所有 ALUT 符号在考虑 OpenAL 之前贪婪地绑定。