我重写了/ usr / local / bin /中的某些dylib文件,现在在运行程序时遇到问题。有办法恢复这些文件吗?
ffmpeg程序对我来说运行良好。然后,我安装了程序GPAC并执行以下操作:
$ sudo cp MP4Box /usr/local/bin/
$ sudo cp -R /Applications/GPAC.app/Contents/MacOS/lib/* /usr/local/lib/
之所以这样做,是因为因为/ usr / local / lib /在$ PATH中,所以它允许我从命令行运行MP4Box。
但是现在当我尝试运行
$ ffmpeg
我收到此错误:
dyld:库未加载:/usr/local/opt/sdl2/lib/libSDL2-2.0.0.dylib 引用自:/ usr / local / bin / ffmpeg原因:库不兼容 版本:ffmpeg需要版本10.0.0或更高版本,但是 libSDL2-2.0.0.dylib提供版本5.0.0中止陷阱:6
我认为发生了什么事:我将一些本不应该做的文件改写到了/ usr / local / lib /中。在这种情况下,我用GPAC应用程序包中的5.0.0版本覆盖了10.0.0版本libSDL2-2.0.0.dylib。
我尝试使用自制软件卸载并重新安装ffmpeg,希望它会需要更新我的dylib库。
$ brew uninstall ffmpeg
$ brew install ffmpeg
$ ffmpeg
但这会导致相同的错误。
这是我从/Applications/GPAC.app/Contents/MacOS/lib/*复制到/ usr / local / lib /
的所有文件的列表libSDL2-2.0.0.dylib libfreetype.6.dylib libplds4.dylib liba52.0.dylib libgpac.dylib libpng16.16.dylib libavcodec.58.dylib libjpeg.9.dylib libpostproc.55.dylib libavdevice.58.dylib liblzma.5.dylib libssl.1.0.0.dylib libavfilter.7.dylib libmad.0.dylib libswresample.3.dylib libavformat.58.dylib libmozjs185.1.0.dylib libswscale.5.dylib libavresample.4.dylib libmp3lame.0.dylib libtheora.0.dylib libavutil.56.dylib libnspr4.dylib libvorbis.0.dylib libcrypto.1.0.0.dylib libogg.0.dylib libx264.152.dylib libfaad.2.dylib libplc4.dylib
答案 0 :(得分:0)
虽然直接运行brew以重新安装ffmpeg不能正常工作,但我发现运行brew以重新安装ffmpeg的依赖关系确实可以工作。
因此对于前面的示例,libSDL2-2.0.0.dylib没有正确加载。我用Google搜索brew libSDL2-2.0.0.dylib,发现它的brew包名称是sdl2。
我跑了
$ brew reinstall sdl2
$ ffmpeg
,我再也没有遇到libSDL2-2.0.0.dylib错误!我对ffmpeg表示需要的每个低级库都重复了这一步骤,并且最终成功了。