我在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
标签下找到此部分,用于我的目标。
除了将我的库转换为静态库之外,我还有其他选择吗?我不认为在发布版本中安装系统库是合适的。根据我的要求,静态库是否更合适?我还要补充一点,该库由一个游戏引擎组成,因此性能是关键。
最后需要注意的是,许多发动机核心系统都是作为单件实现的。