2011-05-24 63 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