我正在运行Xcode 4.5和MacOS 10.7.4,并试图创建一个MacOS应用程序进行本地分发。
我有来自第三方USB硬件供应商的dylib。而不是将其放入/ usr / lib,我想将其与应用程序捆绑在一起。我已经尝试了我能找到的所有方法:
创建Cocoa Library目标,并使用复制构建阶段,使用@rpath和@executable_path以及@loader_path设置路径......
这是我遇到的:
如果将dylib复制到与目标应用程序相同的目录中(通过将目标设置为“Products Directory”),我可以将目标应用程序构建为编译并运行,但这仅在应用程序在Xcode中运行时有效。如果我从finder运行应用程序,它仍然在/ usr / lib中查找dylib。
更改目标设置时的警告:当您再次更改构建时,不会删除复制到上一版本中某个位置的任何文件。这让我想到了几次,当我没有解决时,我有一个解决方案。
“库搜索路径”在链接时似乎按预期工作,但设置“动态库安装名称”和“运行路径搜索路径”似乎不会阻止代码仅在运行时查找/ usr / lib。它们似乎没有任何影响。
那么,为什么设置这些路径变量没有效果,如何设置运行时搜索路径?