Xcode 8 - 相对于可执行运行时路径链接dylib

时间:2017-02-04 05:48:23

标签: c++ xcode llvm xcode8

我在Xcode 8.2中有一个相当大的项目,它包含一个大型动态库libarc.dylib和其他几个可执行目标。其中一个目标在我的库上运行单元和集成测试。

我已将Xcode构建位置设置为相对于我的项目目录,而不是默认的Xcode派生数据位置。

构建和运行我的项目的目标在Xcode中运行良好,但是当我运行我的测试可执行文件时,从构建产品目录,通过终端,我得到以下错误。

dyld: Library not loaded: /usr/local/lib/libarc.dylib

Referenced from: /Users/<username>/programming/<project>/Build/Products/Debug/.Tests

Reason: image not found

[1] 44968 abort ./Tests

显然动态库没有加载。检查local/lib路径后,我注意到我的库未安装。

正在运行otool -L Tests给我

/usr/local/lib/libarc.dylib (compatibility version 1.0.0, current version 1.0.0)

这个库是特定于项目的,我想从我的项目构建位置加载它。优选地,在某个阶段,所有内容都将捆绑到.app

如何设置Tests目标的dylib加载路径指向其运行路径中的libarc.dylib

我找到了一些信息,建议Embedding Binaries进入我的目标,但是从Xcode 8.2开始,我无法在General标签下找到此部分,用于我的目标。

除了将我的库转换为静态库之外,我还有其他选择吗?我不认为在发布版本中安装系统库是合适的。根据我的要求,静态库是否更合适?我还要补充一点,该库由一个游戏引擎组成,因此性能是关键。

最后需要注意的是,许多发动机核心系统都是作为单件实现的。

0 个答案:

没有答案