Сборка Vim из источника в Cygwin - PullRequest
2 голосов
/ 01 апреля 2012

Я пытаюсь собрать Vim из исходных пакетов под Cygwin, чтобы включить поддержку Python. Я следую инструкциям здесь , но я получаю эту ошибку, когда запускаю скрипт configure:

checking --with-tlib argument... empty: automatic terminal library selection
checking for tgetent in -lncurses... no
checking for tgetent in -ltermlib... no
checking for tgetent in -ltermcap... no
checking for tgetent in -lcurses... no
no terminal library found
checking for tgetent()... configure: error: NOT FOUND!
      You need to install a terminal library; for example ncurses.
      Or specify the name of the library with --with-tlib.

Пакет с исходным кодом Vim загружается как /usr/src/vim-7.3.tar.gz, который я извлекаю, а затем пытаюсь собрать, используя:

./configure --prefix=/usr/local --enable-multibyte --without-x --enable-gui=no --enable-pythoninterp

Опция prefix была предложена в этом SO post , где у ОП та же проблема. Однако я установил пакет ncurses Cygwin (а ​​также ncursesw), а также их библиотечные эквиваленты, так что я не уверен, что у меня не получается (то есть, почему скрипт configure не может их найти ). Я попытался явно установить аргумент --with-tlib (например, --with-tlib=/bin/cygncurses-10.dll, ncurses, libncurses10 и libncurses), но он не работает в одном месте с чем-то вроде:

checking for linking with libncurses10 library... configure: error: FAILED

Установленные мной пакеты ncurses:

  • libncursesw10 (5,7-18)
  • libncurses10 (5,7-18)
  • libncurses9 (5,7-16)
  • libncurses8 (5,5-10)
  • нкурс (5,7-18)
  • ncursesw (5,7-18)

Все предложения приветствуются !!

1 Ответ

11 голосов
/ 01 апреля 2012

Я думаю, вам не хватает необходимого пакета. Длительное объяснение следует; перейти к концу для ответа.

Я выполнил ту же самую команду ./configure ... в моей собственной системе (Windows 7, Cygwin). Часть его продукции была:

checking for tgetent in -lncurses... yes

, что указывает на то, что у меня нет такой же проблемы, как у вас.

Сценарий configure записывает более подробный журнал в src/auto/config.log. На моей системе это показывает:

configure:9777: checking for tgetent in -lncurses
configure:9802: gcc -o conftest.exe -g -O2   -L/usr/local/lib conftest.c -lncurses  -lelf   >&5
configure:9802: $? = 0
configure:9812: result: yes

Опция -lncurses указывает компоновщику на /usr/lib/libncurses. foo , где .foo может быть .a, или .so, или .dll, в зависимости от системы и от того, делаете ли вы динамическое связывание. В Cygwin команда cygcheck может сообщить вам, какому пакету принадлежит указанный файл или файлы. В моей системе:

$ ls /usr/lib/libncurses.*
/usr/lib/libncurses.a  /usr/lib/libncurses.dll.a  /usr/lib/libncurses.la
$ cygcheck -f /usr/lib/libncurses.*
libncurses-devel-5.7-18
libncurses-devel-5.7-18
libncurses-devel-5.7-18

Я считаю, что установка libncurses-devel (через Cygwin setup.exe) должна решить вашу проблему.

...