objective-c – XCode 4添加dylib

我正在尝试创建,然后将dylib添加到项目中。
我通过使用“Cocoa-Library”模板创建它,并将类型设置为“Dynamic”(不确定是否应该是动态的或静态的)。然后我创建了一个名为Test的简单obj-c类,并在其中写了一个方法,打印出一些控件。

我编译并使用生成的.dylib文件并将其放在另一个项目中。现在每当我尝试使用它,我得到这个消息在运行时“

dyld: Library not loaded: /usr/local/lib/TESTLib.dylib
  Referenced from: /Users/***/Library/Developer/Xcode/DerivedData/TestingDYLIB-axmoocnxbwznoyerfogosumqufxc/Build/Products/Debug/TestingDYLIB.app/Contents/MacOS/TestingDYLIB
  Reason: image not found

我还创建了一个复制文件阶段,并将目标设置为“框架”。我仍然得到相同的错误。
我究竟做错了什么?谢谢。

问题不在于Xcode在编译时寻找库,而是Simon Whitaker的答案所在。

问题是使用dylib的应用程序在运行时无法找到它。当构建使用动态库的应用程序时,它将dylib的install_name复制到输出二进制文件中。

创建复制文件阶段并将dylib复制到应用程序捆绑的Frameworks子目录是正确的。

但是,您需要做一个额外的步骤。您需要使用适合于bundle应用程序的install_name来编译动态库。默认情况下,使用/usr/local/lib的install_name创建一个动态库。该应用程序找不到您的库,因为它不存在。即使你把图书馆放在那里,你的用户一定不会有,所以这是错误的解决方案。

正确的解决方案是将库与应用程序捆绑在一起。要设置动态库的安装名称,请进入动态库项目,并将“动态库安装名称”选项设置为:@executable_path /../ Frameworks / libmydynamiclibrary.dylib

翻译自:https://stackoverflow.com/questions/6801709/xcode-4-adding-dylib

转载注明原文:objective-c – XCode 4添加dylib