MacVim,Command-T:SEGV

MacVim,Command-T:SEGV

细节:

  • 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

这些文件是否可能以前就在那里,可能不是由您的系统构建的,而是以某种方式由档案包携带的?

也许删除目标文件(清理?)并重建可能会有帮助?

但肯定存在问题,因为您的延迟链接失败表明您的系统找不到某些东西......也许是那些目标文件。

相关内容