use*_*064 17 cocoa objective-c dylib xcode4
我正在尝试创建然后将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
Run Code Online (Sandbox Code Playgroud)
我还创建了一个Copy File阶段并将目标设置为"Frameworks".我仍然得到同样的错误.我究竟做错了什么?谢谢.
wad*_*rld 37
问题不在于Xcode在编译时寻找库,这是Simon Whitaker的回答所解决的问题.
问题是使用dylib的应用程序无法在运行时找到它.构建使用动态库的应用程序时,它会将dylib的install_name复制到输出二进制文件中.
创建一个复制文件阶段并将dylib复制到应用程序包的Frameworks子目录是正确的事情.
但是,您需要执行额外的步骤.您需要使用适用于捆绑应用程序的install_name编译动态库.默认情况下,使用install_name/usr/local/lib创建动态库.该应用程序无法在那里找到您的库,因为它不存在.即使您将库放在那里,您的用户肯定也不会拥有它,因此这将是错误的解决方案.
正确的解决方案是将库与应用程序捆绑在一起.要设置动态库的安装名称,请进入动态库项目并将"动态库安装名称"选项设置为:@executable_path /../ Frameworks/libmydynamiclibrary.dylib
| 归档时间: |
|
| 查看次数: |
18764 次 |
| 最近记录: |