在vim中检查mlint语法

时间:2014-07-12 11:30:19

标签: bash matlab vim environment-variables mlint

我试图让MATLAB语法检查在Vim中工作。

我使用Bundle 'jrestrepo/matlab'并进行语法突出显示,但效果很好。但语法检查不起作用。我使用以下内容将/Applications/MATLAB_R2012b.app/bin/maci64/导出到PATH

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH"
export PATH
export PATH=$PATH:/Applications/MATLAB_R2012b.app/bin/maci64

在我的bash_profile中,现在在命令行中我得到:

Tierra-Gorda:~ mike$ which mlint
/Applications/MATLAB_R2012b.app/bin/maci64/mlint

Tierra-Gorda:~ mike$ mlint
dyld: Library not loaded: libtbb.dylib
  Referenced from: /Applications/MATLAB_R2012b.app/bin/maci64/./libmwfl.dylib
  Reason: image not found
Trace/BPT trap: 5

我怀疑,路径中的点会以某种方式混淆它。因为文件libmwfl.dylib存在于.../maci64/libmwfl.dylib

感谢您的任何建议。

2 个答案:

答案 0 :(得分:1)

除了DYLD_LIBRARY_PATH

之外,您可能还想设置PATH环境变量
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Applications/MATLAB_R2012b.app/bin/maci64

根据man dyld

  

<强> DYLD_LIBRARY_PATH

     

这是一个以冒号分隔的包含库的目录列表。动态   链接器在搜索默认位置之前搜索这些目录   库。它允许您测试现有库的新版本。

     

对于程序使用的每个库,动态链接器在每个库中查找它   依次在DYLD_LIBRARY_PATH中的目录。如果它仍然找不到库,那就   然后依次搜索DYLD_FALLBACK_FRAMEWORK_PATHDYLD_FALLBACK_LIBRARY_PATH

     

使用-L otool(1)选项来发现框架和共享库   可执行文件链接到。


编辑:

我认为更安全的方法是追加DYLD_FALLBACK_LIBRARY_PATH。这样您就不会优先于默认搜索路径,并可能覆盖其他程序加载的库......

更好的是,您应该创建一个启动器脚本(您设置DYLD_*然后启动mlint),而不是在bash_profile全局更改环境变量。

答案 1 :(得分:0)

我在.bash_profile

上仔细添加了某些库的正确路径
export matlabroot="/Applications/MATLAB_R2012a.app"

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:${matlabroot}/bin/:${matlabroot}/runtime/maci64
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${matlabroot}/sys/os/maci64:${matlabroot}/bin/maci64

DYLD_FALLBACK_LIBRARY_PATH=$DYLD_FALLBACK_LIBRARY_PATH:/usr/local/lib:/lib:/usr/lib:${matlabroot}/bin/maci64

export DYLD_FALLBACK_LIBRARY_PATH
export DYLD_LIBRARY_PATH

重新运行终端或Vim,现在应该可以使用了。 为了得到一些信任,我在这里找到了答案: Issue on a Matlab 2010b on MacBook Pro (Lion)