细节:
- OSX 10.7.4
我通过 Homebrew 安装了最新的 MacVim:
$ command-t brew install macvim
==> Downloading https://github.com/b4winckler/macvim/tarball/snapshot-64
Already downloaded: /Library/Caches/Homebrew/macvim-7.3-64.tgz
==> ./configure --with-features=huge --with-tlib=ncurses --enable-multibyte --with-macarchs=x86_64 --enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-t
==> make getenvy
==> make
==> Caveats
MacVim.app installed to:
/usr/local/Cellar/macvim/7.3-64
To link the application to a normal Mac OS X location:
brew linkapps
or:
ln -s /usr/local/Cellar/macvim/7.3-64/MacVim.app /Applications
==> Summary
/usr/local/Cellar/macvim/7.3-64: 1733 files, 27M, built in 53 seconds
$ command-t brew linkapps
Linking /usr/local/Cellar/macvim/7.3-64/MacVim.app
Finished linking. Find the links under ~/Applications.
$ command-t ruby -v
ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]
$ command-t rvm list
rvm rubies
ree-1.8.7-2012.02 [ i686 ]
ruby-1.8.7-p358 [ i686 ]
ruby-1.9.2-p290 [ x86_64 ]
ruby-1.9.2-p320 [ x86_64 ]
ruby-1.9.3-p194 [ x86_64 ]
# Default ruby not set. Try 'rvm alias create default <ruby>'.
# => - current
# =* - current && default
# * - default
$ command-t cd ~/.vim/bundle/vim-command-t/ruby/command-t
ruby extconf.rb
$ command-t ruby extconf.rb
checking for ruby.h... yes
creating Makefile
$ command-t make
cc -arch i386 -arch x86_64 -pipe -bundle -undefined dynamic_lookup -o ext.bundle ext.o match.o matcher.o -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -L. -arch i386 -arch x86_64 -lruby -lpthread -ldl -lobjc
ld: warning: ignoring file ext.o, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file match.o, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file matcher.o, file was built for unsupported file format which is not the architecture being linked (i386)
$ command-t mvim
然后 MacVim 就会在这里打开。但是当我打开 Command-T 时,MacVim 崩溃了,我在命令行中看到以下内容:
$ command-t dyld: lazy symbol binding failed: Symbol not found: _rb_intern2
Referenced from: /Users/ramon/.vim/bundle/vim-command-t/ruby/command-t/ext.bundle
Expected in: flat namespace
dyld: Symbol not found: _rb_intern2
Referenced from: /Users/ramon/.vim/bundle/vim-command-t/ruby/command-t/ext.bundle
Expected in: flat namespace
Vim: Caught deadly signal TRAP
Vim: Finished.
我遇到的问题非常类似这,除了我切换到系统 Ruby 并且仍然收到错误。
答案1
在安装/配置即将结束时,似乎有三个目标文件由于架构不匹配而被忽略。
cc -arch i386 -arch x86_64 -pipe -bundle -undefined dynamic_lookup -o ext.bundle ext.o match.o matcher.o -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -L. -arch i386 -arch x86_64 -lruby -lpthread -ldl -lobjc
ld: warning: ignoring file ext.o, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file match.o, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file matcher.o, file was built for unsupported file
这些文件是否可能以前就在那里,可能不是由您的系统构建的,而是以某种方式由档案包携带的?
也许删除目标文件(清理?)并重建可能会有帮助?
但肯定存在问题,因为您的延迟链接失败表明您的系统找不到某些东西......也许是那些目标文件。