2011-05-24 64 views
5

this writeup ...试图在OS X上编译vim?

编译的二进制看起来做工精细,但安装的二进制失败(运行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 

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

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

这里发生了什么?

和NO:我不想只是使用的MacVim,而不是...

回答

7

说就在博客文章:

你可能受骗一(目前)不是非常有据可查的问题:Vim的7.2不支持的Ruby 1.9.x的对雪豹的整合。

还有更多的信息在this ticket

但是总之,您必须链接到Ruby 1.8.7,它是Snow Leopard随附的版本。

+0

啊,好的。在编译或版本检查过程中,我没有遇到过这个错误,但是尝试在新编译的二进制文件中运行Command-T时抛出了它。由于“二进制发布没有任何错误”,我已经开始以“我自己的迷人的欣喜”而不是认为这适用于我,但运行Command-T证明这是一个过早的庆祝。采取这些额外步骤解决了这个问题。稍微不太清楚的博客文章...将写给作者。谢谢。 – neezer 2011-05-24 18:05:57

+0

谢谢。同样的问题 - 尽管感谢RVM,我能够简单地切换到1.8.7安装的红宝石,一切都很好。 – 2011-07-04 16:46:10

+0

我没有开关与$ rvm使用1.8.7,仍然得到这个:$ ruby​​ -v ruby​​ 1.8.7(2011-06-30 patchlevel 352)[i686-darwin10.8.0] Coltrane:ggspree joe $ brew install https ://raw.github.com/adamv/homebrew-alt/master/duplicates/vim.rb $ which ruby​​ /Users/joe/.rvm/rubies/ruby-1.8.7-p352/bin/ruby Coltrane: ggspree joe $ vim --version | grep的红宝石 使dyld:找不到符号:_environ 从引用:/Users/joe/.rvm/rubies/ruby-1.9.2-p290/lib/libruby.1.9.1.dylib 预期:平面命名空间 在/用户/ joe/.rvm/rubies/ruby​​-1.9.2-p290/lib/libruby.1.9.1.dylib ---不知道该怎么办? – 2011-11-09 15:44:16

0

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

$ sudo port install vim 

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

$ sudo port install vim +ruby 

MacPorts然后将获取所有的依赖关系,并排除所有这些头疼自己。

+2

我不再使用MacPorts,而是[Homebrew](http://mxcl.github.com/homebrew/)。我发现有一个vim的替代公式,包括7.3和ruby/python支持,但遇到了有关Ruby 1.9.2的问题,所以我试图降级到1.9.1,看看是否能解决它...... brew安装https://github.com/adamv/homebrew-alt/raw/master/duplicates/vim.rb – neezer 2011-05-24 17:46:08

+0

有趣的;我以前没见过自制软糖,但看起来不错。我会检查出来,如果MacPorts变得讨厌:) – trojanfoe 2011-05-24 17:48:49

7

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

如果您使用rbenv代替rvm,您可以更改为ruby 1.8.7或在您的.zshenv或​​.bash_profile文件中禁用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的,您可以切换到系统红宝石(OSX),重新编译,然后切换回

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