Пытаетесь скомпилировать vim на OS X? - PullRequest
5 голосов
/ 24 мая 2011

После этой записи ...

Кажется, что скомпилированный двоичный файл работает нормально, но установленный двоичный файл дает сбой (при запуске 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

Как я уже сказал, я думаю, что он скомпилирован правильно, потому что я могу запустить ./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

Запуск which vim подтверждает, что он пытается загрузить новый двоичный файл в /usr/local/bin/vim.

Моя текущая версия Ruby - ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0] через RVM .

Что здесь происходит?

И нет: я не хочу просто использовать MacVim ...

Ответы [ 3 ]

7 голосов
/ 24 мая 2011

прямо в блоге пишет:

вы, вероятно, стали жертвой (в настоящее время) не очень хорошо документированной проблемы: Vim 7.2 не поддерживает интеграцию Ruby 1.9.x в Snow Leopard.

Более подробная информация доступна в этом билете .

Но в итоге вы должны сделать ссылку на Ruby 1.8.7, которая в любом случае поставляется со Snow Leopard.

7 голосов
/ 22 октября 2012

Vim не может быть скомпилирован с Ruby 1.9.X (может быть исправлено в будущем).Вы должны скомпилировать его с Ruby 1.8.X, если вы хотите использовать интеграцию с ruby.

Если вы используете rbenv вместо rvm, вы можете перейти на ruby ​​1.8.7 или отключить rbenv в вашем .zshenv или.Файл bash_profile, перекомпилируйте 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Вы можете переключиться на системный ruby ​​(osx), перекомпилировать и вернуться обратно

rvm use system
brew uninstall vim
brew install vim
rvm use 1.9.3
0 голосов
/ 24 мая 2011

Я бы рекомендовал использовать MacPorts ; компиляция vim становится:

$ sudo port install vim

РЕДАКТИРОВАТЬ: Исправление; вам понадобится режим ruby:

$ sudo port install vim +ruby

MacPorts затем извлечет все зависимости и сама устранит всю эту головную боль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...