在Cygwin中从Source构建Vim

时间:2012-03-31 20:07:10

标签: python vim build cygwin ncurses

我正在尝试从Cygwin下的源包构建Vim,以启用Python支持。我按照here给出的说明操作,但是当我运行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

SO post中建议使用prefix选项,其中OP具有完全相同的问题。但是,我安装了ncurses Cygwin软件包(以及ncursesw),以及它们的库等价物,所以我不确定我的问题是什么(即为什么configure脚本找不到它们)。我已尝试明确设置--with-tlib参数(例如,--with-tlib=/bin/cygncurses-10.dllncurseslibncurses10libncurses),但它在同一个地方失败了像:

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)
  • ncurses(5.7-18)
  • ncursesw(5.7-18)

欢迎所有建议!!

1 个答案:

答案 0 :(得分:11)

我认为你错过了一个必需的包裹。冗长的解释如下;跳到最后寻找答案。

我在自己的系统上运行完全相同的./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,或{ {1}}或.so,具体取决于系统以及您是否正在进行动态链接。在Cygwin上,.dll命令可以告诉您哪个包拥有指定的文件。在我的系统上:

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 (通过Cygwin setup.exe)可以解决您的问题。