下面是我的场景,
在我的应用程序中,我必须使用 libopus 库,我下载并安装,编译 --> 安装过程是正常的,因为它适用于任何其他开源库,
我将 libopus.a 与我的应用程序链接在一起,我的做法是,默认情况下它将安装在 /usr/local/lib 中,所以我从那里拖动并将其添加到我的应用程序中,
在我的机器上工作正常,没有错误,
在另一台机器上,我希望它能够顺利运行,因为我静态地包含了这个库,但它的抛出错误为
dyld: Library not loaded: /usr/local/lib/libopus.0.dylib
所以我得出结论,libopus.a 以某种方式包括 libopus.0.dylib 也是动态的,
现在我不能在我的构建设置中添加一个复制阶段,所以它会被复制到 ../Framework 文件夹中
如果我执行 otool -L libpus.a 那么它会显示以下结果
otool -L /usr/local/lib/libopus.a
Archive : /usr/local/lib/libopus.a
/usr/local/lib/libopus.a(bands.o):
/usr/local/lib/libopus.a(celt.o):
/usr/local/lib/libopus.a(cwrs.o):
/usr/local/lib/libopus.a(entcode.o):
/usr/local/lib/libopus.a(entdec.o):
/usr/local/lib/libopus.a(entenc.o):
/usr/local/lib/libopus.a(repacketizer.o):
它没有显示为它依赖于 dylib 库
现在我的问题是
如何告诉应用程序首先查看此路径
我尝试了以下选项,
install_name_tool 但它似乎可以在其他机器上运行,所以用户需要运行这个脚本而不是开发人员,
尝试在 xcode 中设置一些选项以设置 RUNTIME 搜索路径以定位该特定 dylib 但到目前为止尚未成功