这是libfreetype.6.dylib版本不兼容的另一个有趣版本。弄清楚了,我觉得值得记录...... 设置如下: MacOS 10.9.5 IDL 8.3 Matlab 2013b
Matlab用于动态创建shell脚本,然后调用IDL .sav文件。然后通过Matlab中的unix()命令调用shell脚本。
从shell运行生成的shell脚本时,一切正常。当尝试通过unix()命令从Matlab运行它时,会出现libfreetype.6.dylib版本问题:
dyld:未加载库:/opt/X11/lib/libfreetype.6.dylib 不兼容的库版本:libidl.8.3.dylib需要15.0.0或更高版本,但libfreetype.6.dylib提供版本10.0.0
答案 0 :(得分:0)
正如其他帖子中关于类似效果但其他应用程序所述,错误消息具有误导性,因为程序显然从未尝试实际加载/opt/X11/lib/libfreetype.6.dylib
可以通过otool检查/opt/X11/lib/libfreetype.6.dylib的版本:
otool -L libfreetype.6.dyliblibfreetype.6.dylib:
/opt/X11/lib/libfreetype.6.dylib (compatibility version 18.0.0, current version 18.2.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
显然,X11提供的版本高于IDL所需的版本。
要解决此问题,只需将/opt/X11/lib/libfreetype.6.dylib复制到/Applications/exelis/idl83/bin/bin.darwin.x86_64
注意:libfreetype.6.dylib根本不存在于IDL应用程序文件层次结构中,因此,据推测,某些与X11提供的库版本的链接必须出错...修复这可能是一个更清洁的解决方案。