Dyld:未加载库错误Mac OS

Ste*_*ani 5 macos frameworks objective-c dyld

Hoookay,

所以我知道我要打十几个"加载lib dummy"的答案,但是这里......

junk.framework正在导出另一个项目的某些对象(junk.app),所以我可以在集群上的remote.app节点上使用它.我可以编译junk.framework(我意识到动态加载不再意味着什么)并编译并链接remote.app到junk.framework.

但是,当我运行remote.app时,我得到了一个错误的可爱宝石:

dyld: Library not loaded: @executable_path/../Frameworks/libtiff.dylib
  Referenced from: /Users/slate/Documents/junk/build/Development/junk.framework/Versions/A/junk
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

我认为发生的事情是junk.framework正在从某个位置加载libtiff.dylib并且无法找到它.junk.framework是我正在研究的另一个项目,我只需要构建(最后).

当我get info在我的垃圾目标中使用libtiff.dylib时,它给了我/Users/slate/Documents/osirix/osirix/Binaries/LibTiff/libtiff.dylib一条路径...而且我已经被absolute path选中了.那么为什么不寻找呢?

呃...为什么要看@executable_path /../ ???? 那个地方到底是什么设置所以我可以改变它?

编辑---

otool -L给了我这个:

/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.26.0)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.54.0)
/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 12.0.0)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
@executable_path/../Frameworks/libtiff.dylib (compatibility version 11.0.0, current version 11.4.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
/System/Library/Frameworks/QTKit.framework/Versions/A/QTKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 1327.73.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 32.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.19.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 34.0.0)
/System/Library/Frameworks/vecLib.framework/Versions/A/vecLib (compatibility version 1.0.0, current version 242.0.0)
Run Code Online (Sandbox Code Playgroud)

JWW*_*ker 9

构建libtiff.dylib时指定了@executable_path设置.(如果您构建自己的dylib或框架,则它是安装目录(INSTALL_PATH)构建设置.)可以使用install_name_tool命令更改它.