试图在OS X上编译vim?

时间:2011-05-24 17:25:32

标签: macos vim compilation

关注this writeup ...

编译后的二进制文件似乎工作正常,但安装的二进制文件失败(运行make install时)。

这一步似乎失败了:

...
generating help tags
/usr/local/bin/vim -u NONE -esX -c "helptags ++t ." -c quit
dyld: Symbol not found: _environ
  Referenced from: /Users/neezer/.rvm/rubies/ruby-1.9.2-p0/lib/libruby.1.9.1.dylib
  Expected in: flat namespace
 in /Users/neezer/.rvm/rubies/ruby-1.9.2-p0/lib/libruby.1.9.1.dylib
make[2]: *** [vimtags] Trace/BPT trap
make[1]: [installrtbase] Error 2 (ignored)

我用它来配置:

./configure --prefix=/usr/local --enable-rubyinterp --enable-gui=no --disable-gpm

就像我说的,我认为它编译正确,因为我可以在./src/vim之后运行make就好了(没有错误)。但是当我尝试在make install /usr/local/bin/vim之后运行已安装的版本时,我得到了这个(上面的镜像):

dyld: Symbol not found: _environ
  Referenced from: /Users/neezer/.rvm/rubies/ruby-1.9.2-p0/lib/libruby.1.9.1.dylib
  Expected in: flat namespace
 in /Users/neezer/.rvm/rubies/ruby-1.9.2-p0/lib/libruby.1.9.1.dylib
[1]    13175 trace trap  vim

正在运行which vim验证它是否正在尝试在/usr/local/bin/vim中加载新二进制文件。

我当前的Ruby版本是ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]来自RVM

这里发生了什么?

不,我不想只使用MacVim ......

3 个答案:

答案 0 :(得分:7)

在博文中说:

  

你可能已经成为一个(目前)没有很好记录的问题的牺牲品:Vim 7.2不支持在Snow Leopard上集成Ruby 1.9.x.

this ticket中提供了更多信息。

但总的来说,你必须链接Ruby 1.8.7,无论如何它都是Snow Leopard附带的版本。

答案 1 :(得分:7)

Vim无法使用Ruby 1.9.X进行编译(将来可能会修复)。如果你想使用ruby集成,你必须用Ruby 1.8.X编译它。

如果使用rbenv而不是rvm,则可以在.zshenv或​​.bash_profile文件中更改为ruby 1.8.7或禁用rbenv,重新编译vim并再次启用当前的ruby。这也适用于OSX 10.6。我只在OSX 10.7和10.8上测试了这个解决方案。

对于zsh和rbenv:

# disable in your .zshenv for compile time. Just comment it out for comile time.
# eval "$(rbenv init -)"

对于bash和rbenv:

# disable in .bash_profile or .bashrc for compile time. Just comment it out for comile time.
# eval "$(rbenv init -)"

对于rvm,你可以切换到系统ruby(osx),重新编译并切换回来

rvm use system
brew uninstall vim
brew install vim
rvm use 1.9.3

答案 2 :(得分:0)

我建议使用MacPorts;编译vim然后变成:

$ sudo port install vim

编辑:更正;你需要红宝石模式:

$ sudo port install vim +ruby
然后,MacPorts将获取所有依赖项,并将所有令人头疼的问题排除在外。