我正在尝试在 XCode 中创建一个 mac 应用程序,它的一些实现在动态库中。
我向我的 XCode cocoa 项目添加了一个新目标(动态库),在与框架和预编译头进行了一些斗争之后,进行了 dynlib 编译 - 并从调试器成功运行。
然而,当独立运行时,很明显 dynlib 位于错误的位置。 “未加载库:/usr/local/lib/testlib.dynlib”。在 Windows(我更常用的平台)上,Dll 可以放置在与 exe 相同的文件夹中,以及系统路径上的任何位置。
我宁愿我的应用程序在其应用程序包中的某个位置查找其 dynlib (某些文档似乎确认这是正确的方法),但我不知道如何进行。
是否可以在 XCode 中配置项目,以便 dylib 实际上被复制到应用程序包中,应用程序将在其中查找它?
看来我不需要使用 otool 来重置搜索路径。如果我编辑目标信息 -> 构建 -> 部署 -> 安装目录,我可以从 XCode 内部更改 dyld 将查找 dylib 的路径。默认情况下,对于新的动态库项目,路径设置为/usr/local/lib
。我已经改为./
- otool 确认 ./ 现在是 dyld 将要查找此特定动态模块的位置。不幸的是 ./ 似乎实际上并没有引用我的应用程序包中的任何目录:(
所以,我的问题(在其他线程中没有回答)现在是:
1.如何输入有意义的relative目标信息 -> ... -> 安装目录设置中的路径,以及
2.如何让XCode自动将dylib“目标”复制到应用程序包目标的相对位置的包文件夹中?
终于。找到了一些官方文档。完全可以在 XCode 中完成此操作。
我正在修改库的安装目录设置:它需要是:@executable_path/../Frameworks
然后我需要向库添加“复制文件”构建步骤,以将其实际复制到 Frameworks 文件夹。
简单的。自动的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)