我正在尝试从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.dll
,ncurses
,libncurses10
和libncurses
),但它在同一个地方失败了像:
checking for linking with libncurses10 library... configure: error: FAILED
我安装的ncurses
个包是:
欢迎所有建议!!
答案 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
)可以解决您的问题。