0

I tried to get the MATLAB syntax checking to work in Vim.

I used Bundle 'jrestrepo/matlab' and for syntax highlighting and it works fine. But the syntax checking doesn't work. I exported /Applications/MATLAB_R2012b.app/bin/maci64/ to PATH with:

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

in my bash_profile and now on the command line I get:

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

and I suspect, that the dot in the path messes it up somehow. Because the file libmwfl.dylib exists in .../maci64/libmwfl.dylib.

Thanks for any suggestions.

4

2 回答 2

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_PATH搜索DYLD_FALLBACK_LIBRARY_PATH

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


编辑:

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

更好的是,您应该创建一个启动器脚本(在其中设置DYLD_*然后 start mlint),而不是在bash_profile.

于 2014-07-13T14:51:26.680 回答
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,它现在应该可以工作了。为了给予一些信任,我在这里找到了答案: 在 MacBook Pro (Lion) 上的 Matlab 2010b 上的问题

于 2015-03-06T09:32:39.107 回答