vim 二进制文件,所有库均静态链接

vim 二进制文件,所有库均静态链接

我想构建 vim,并静态链接 vim 所依赖的所有库。Vim 版本足以运行 YouCompleteMe。我在 configure 脚本中使用以下标志:

$./configure --with-features=huge \
             --enable-multibyte \
             --enable-rubyinterp \
             --enable-pythoninterp \
             --enable-perlinterp \
             --enable-luainterp \
             --enable-gui=gtk2 \
             --enable-cscope

我将 LDFLAGS 设置为“-static”

$export LDFLAGS='-static'

我还安装了所有 vim 构建依赖项:

$sudo apt-get build-dep vim

事实证明仍然缺少一些东西,因为我从配置脚本中收到以下错误消息:

checking --with-tlib argument... empty: automatic terminal library selection
checking for tgetent in -ltinfo... no
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.

我检查了我是否有 ncurses 库的静态版本 - 是的,我在以下位置有:

/usr/lib/i386-linux-gnu/libncurses.a

如果没有静态 LDFLAG,vim 构建就不会出现任何问题。

你知道为什么会发生这种情况吗?

答案1

我在 vim 端口上尝试使用 pkgsrc 时遇到了类似的问题。尝试打开配置日志文件。在我的例子中,configure脚本告诉我以下内容:

| int
| main ()
| {
| char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");
|   ;
|   return 0;
| }
configure:11408: error: NOT FOUND!
      You need to install a terminal library; for example ncurses.
      Or specify the name of the library with --with-tlib.

这里的问题是termcap.hC 代码片段中缺少标头。因此我通过添加来修补配置脚本#include <termcap.h>,然后就没问题了。

我不知道您的平台上是否存在同样的问题,但您应该尝试一下:)

相关内容