我想构建 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>
,然后就没问题了。
我不知道您的平台上是否存在同样的问题,但您应该尝试一下:)