编译 vim 时未找到 tgetent()

编译 vim 时未找到 tgetent()

目前,我正在尝试将 YouCompleteMe 扩展安装到我的 vim 设置中,但它要求我的 vim 版本为 7.3.584 或更高。我的 Ubuntu 12.10 附带的 vim 是 7.3.547,因此我不得不按照以下方法从源代码重新编译 vim本指令

按照说明,我执行了:

sudo apt-get 安装 libncurses5-dev libgnome2-dev libgnomeui-dev \
libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \
libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev ruby​​-dev mercurial

这应该会给我编译所需的所有软件包。然而,当我克隆 vim 源代码并即将开始调整编译配置时,我得到了

...
在 -lcurses 中检查 tgetent...是的
termcap 库不可用
未找到终端库
检查 tgetent()...配置:错误:未找到!
    您需要安装一个终端库;例如 ncurses。
    或者使用 --with-tlib 指定库的名称。

我做了一些研究,并普遍认为我应该指定 ncurses 作为我的终端库。但当我这样做时

./configure --with-tlib=ncurses

它回喊

...
检查 --with-tlib 参数... ncurses
检查与 ncurses 库的链接...确定
检查 tgetent()...configure:错误:未找到!
    您需要安装一个终端库;例如 ncurses。
    或者使用 --with-tlib 指定库的名称。

我不知道我是否遗漏了什么,或者是否有其他方法可以获取最新版本的 vim?非常感谢!

答案1

我一直在使用那家伙的 PPA使 Vim 在 Ubuntu 11.04 上保持最新。最新版本是 7.3.854,我相信它可以与 YouCompleteMe 兼容。

答案2

这是因为系统缺少ncurses库,可以通过安装libncurses5-dev解​​决。

sudo apt-get install libncurses5-dev

我通过这篇文章解决了这个问题。 在此处输入链接描述

答案3

我遇到了完全相同的问题(重新编译 vim 以使用 YCM),我通过删除src/auto/config.cache(在 vim 树中)并重新运行来修复它./configure。似乎过时的configure缓存仍然存在。

答案4

在 Ubuntu(和其他基于 Debian 的发行版)上,您可以通过以下方式获取所有必需的先决条件:

$ sudo apt-get build-dep vim-gnome

我不知道这是否能解决依赖问题,但值得一试。

相关内容