关注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 ......
答案 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将获取所有依赖项,并将所有令人头疼的问题排除在外。