我查看了一些相关问题,似乎无法为自己找到解决方案。
基本上我在我的 Xcode 项目中使用 libmp3lame.dylib。lame 的安装过程生成了 .dylib 并将其放在 usr/local/lib 中,为了让 Xcode 构建和运行项目,我更改了库搜索路径以包含上述文件夹。这工作正常。
现在它要生产一个发布版本,我想在包中包含 .dylib,这样用户就不必忍受安装阶段或类似的东西。我创建了目标的复制文件阶段,这会将 .dylib 转储到包内容中的 Frameworks 文件夹中。但是,在二进制文件上运行 otool 表明编译器没有使用包中的 .dylib ,而是将其链接到 usr/local/lib 版本(即使我删除了该版本)。
查看 otool 输出中的其他结果,我在包中链接了其他框架,而不是 .dylib。查看这些框架和 Xcode 中的 .dylib 的属性,除了文件类型之外,我看不到任何差异。
我的搜索表明我需要使用 rpath 或类似的,但我不知道在 Xcode 中的何处应用它。