【发布时间】:2013-03-27 11:13:37
【问题描述】:
下面是我的场景,
在我的应用程序中,我不得不使用 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,但目前没有成功
【问题讨论】:
-
otool -L对于您所包含的库的输出是什么? -
@jay,我在我的问题中添加了这一点
-
嗯.. 你确定你没有在 Xcode 中链接到 .dylib?
-
是的,我故意没有在我的 Xcode 中链接任何 .dylib
标签: objective-c cocoa xcode4.5 dylib install-name-tool