2010-06-04 60 views
5

Hoookay,使dyld:库未加载错误的Mac OS

所以我知道我即将得到了十几个“加载的lib虚拟”回答这个,但在这里不用...

垃圾。框架正在导出另一个项目的一些对象(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 

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

当我在我的垃圾目标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) 

回答

9

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

+0

AH所以这就是为什么我找不到它。谢谢。 – 2010-06-04 17:08:07

相关问题