install_name_tool解决dyld: Library not loaded
来源:互联网 发布:欧阳娜娜 知乎 编辑:程序博客网 时间:2024/06/03 12:43
在Mac OS 10.++上,有的时候应用程序找不到动态库。例如在使用ffplay播放视频的时候:
ffplay ~/Movies/testfile.mp4
得到的错误:
dyld: Library not loaded: /usr/local/opt/sdl/lib/libSDL-1.2.0.dylib Referenced from: /usr/local/bin/ffplay Reason: image not found
利用工具otool查看ffplay依赖的动态库:
otool -L /usr/local/bin/ffplay/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1404.47.0) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/QTKit.framework/Versions/A/QTKit (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1259.0.0) /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0) /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0) /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1258.1.0) /System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 492.0.0) /System/Library/Frameworks/VideoDecodeAcceleration.framework/Versions/A/VideoDecodeAcceleration (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 57337.60.2) /usr/local/opt/sdl/lib/libSDL-1.2.0.dylib (compatibility version 12.0.0, current version 12.4.0) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 22.0.0) /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 600.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1) /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 728.13.0) /System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage (compatibility version 1.0.1, current version 2.0.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
发现libSDL-1.2.0.dylib的查找路径为:/usr/local/opt/sdl/lib/libSDL-1.2.0.dylib (compatibility version 12.0.0, current version 12.4.0)
然而我的实际路径为:/usr/local/sdl1_2_15/lib/libSDL-1.2.0.dylib (compatibility version 12.0.0, current version 12.4.0)
自然就找不到了。。。
使用工具install_name_tool来修改应用程序对动态库的查找路径,用法:
install_name_tool oldpath newpath /path2APP/appName
针对前面的问题,使用如下命令就OK了。
install_name_tool -change /usr/local/opt/sdl/lib/libSDL-1.2.0.dylib /usr/local/sdl1_2_15/lib/libSDL-1.2.0.dylib /usr/local/bin/ffplay
还有个问题,如果出现错误如下:
dyld: Library not loaded: @rpath/libopencv_shape.3.2.dylib Referenced from: /Users/******/Library/Developer/Xcode/DerivedData/imageEnhance-bjagxbzymzhmlkflyuypxbrechtu/Build/Products/Release/imageEnhance Reason: image not found
说明运行时没有找到相应的库,那么在Runpath Search Paths中设置所需要的库的路基即可,如下图:
0 0
- install_name_tool解决dyld: Library not loaded
- 解决 “dyld: Library not loaded: ” 错误
- 解决 “dyld: Library not loaded: ” 错误
- dyld: library not loaded: 错误解决
- dyld: Library not loaded
- dyld: Library not loaded:
- dyld: Library not loaded:
- dyld: Library not loaded
- dyld-library-not-loaded
- 关于dyld: Library not loaded
- 错误:dyld: Library not loaded
- 关于dyld: Library not loaded
- 错误:dyld: Library not loaded
- 160623dyld: Library not loaded:
- dyld: Library not loaded: @rpath
- error! dyld: Library not loaded
- dyld: Library not loaded: @rpath/MySDK.framework/MySDK 错误解决
- 解决dyld: Library not loaded: @rpath/libswiftCore.dylib
- MyBatis_6
- 随机数
- Java集合类型详解
- C++课程笔记(3)——Part2 Abstraction Mechanisms
- Python中Str类的常用方法
- install_name_tool解决dyld: Library not loaded
- 初学html
- iReport连接数据库报表开发一
- Arcgis license 服务无法启动的解决问题
- JAVA 关键字volatile
- linux常用命令
- 2017年第十届华中地区大学生数学建模邀请赛个人赛D题 香菇分类
- ES6数组的解构赋值
- 用ajax向后台传递数组乱码解决方法