nee*_*zer 5 macos vim compilation
继此书面记录 ...
编译后的二进制文件似乎工作正常,但安装的二进制文件失败(运行时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)
Run Code Online (Sandbox Code Playgroud)
我用它来配置:
./configure --prefix=/usr/local --enable-rubyinterp --enable-gui=no --disable-gpm
Run Code Online (Sandbox Code Playgroud)
就像我说的,我认为它正确编译,因为我可以运行./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
Run Code Online (Sandbox Code Playgroud)
运行which vim验证它是否正在尝试加载新的二进制文件/usr/local/bin/vim.
我目前的Ruby版本是ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]通过RVM.
这里发生了什么事?
不,我不想只使用MacVim ......
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 -)"
Run Code Online (Sandbox Code Playgroud)
对于bash和rbenv:
# disable in .bash_profile or .bashrc for compile time. Just comment it out for comile time.
# eval "$(rbenv init -)"
Run Code Online (Sandbox Code Playgroud)
对于rvm,您可以切换到系统ruby(osx),重新编译并切换回来
rvm use system
brew uninstall vim
brew install vim
rvm use 1.9.3
Run Code Online (Sandbox Code Playgroud)