尝试构建vim时未找到ncurses



最近升级到Fedora 23 后,我正在尝试在我的用户目录中构建vim

我有ncurses和ncurses开发

[root@statquant-laptop lib]# dnf install ncurses
Last metadata expiration check performed 1:09:48 ago on Sat Jan  9 10:33:06 2016.
Package ncurses-5.9-21.20150214.fc23.x86_64 is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!
[root@statquant-laptop lib]# dnf install ncurses-devel
Last metadata expiration check performed 1:09:58 ago on Sat Jan  9 10:33:06 2016.
Package ncurses-devel-5.9-21.20150214.fc23.x86_64 is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!

证据如下:

[root@statquant-laptop lib]# ll /usr/lib/libncurs*
lrwxrwxrwx. 1 root root     17 Jun 17  2015 /usr/lib/libncurses.so.5 -> libncurses.so.5.9
lrwxrwxrwx. 1 root root     19 Jun 17  2015 /usr/lib/libncurses++.so.5 -> libncurses++.so.5.9
-rwxr-xr-x. 1 root root 154448 Jun 17  2015 /usr/lib/libncurses.so.5.9
-rwxr-xr-x. 1 root root  68176 Jun 17  2015 /usr/lib/libncurses++.so.5.9
lrwxrwxrwx. 1 root root     20 Jun 17  2015 /usr/lib/libncurses++w.so.5 -> libncurses++w.so.5.9
lrwxrwxrwx. 1 root root     18 Jun 17  2015 /usr/lib/libncursesw.so.5 -> libncursesw.so.5.9
-rwxr-xr-x. 1 root root  68176 Jun 17  2015 /usr/lib/libncurses++w.so.5.9
-rwxr-xr-x. 1 root root 216000 Jun 17  2015 /usr/lib/libncursesw.so.5.9
[root@statquant-laptop lib]# ll /usr/lib64/libncurs*
-rw-r--r--. 1 root root 330362 Jun 17  2015 /usr/lib64/libncurses.a
-rw-r--r--. 1 root root 183214 Jun 17  2015 /usr/lib64/libncurses++.a
-rw-r--r--. 1 root root 473398 Jun 17  2015 /usr/lib64/libncurses_g.a
-rw-r--r--. 1 root root 183214 Jun 17  2015 /usr/lib64/libncurses++_g.a
-rw-r--r--. 1 root root     31 Jun 17  2015 /usr/lib64/libncurses.so
lrwxrwxrwx. 1 root root     17 Jun 17  2015 /usr/lib64/libncurses++.so -> libncurses++.so.5
lrwxrwxrwx. 1 root root     17 Jun 17  2015 /usr/lib64/libncurses.so.5 -> libncurses.so.5.9
lrwxrwxrwx. 1 root root     19 Jun 17  2015 /usr/lib64/libncurses++.so.5 -> libncurses++.so.5.9
-rwxr-xr-x. 1 root root 155056 Jun 17  2015 /usr/lib64/libncurses.so.5.9
-rwxr-xr-x. 1 root root  76968 Jun 17  2015 /usr/lib64/libncurses++.so.5.9
-rw-r--r--. 1 root root 183214 Jun 17  2015 /usr/lib64/libncurses++w.a
-rw-r--r--. 1 root root 433400 Jun 17  2015 /usr/lib64/libncursesw.a
-rw-r--r--. 1 root root 183214 Jun 17  2015 /usr/lib64/libncurses++w_g.a
-rw-r--r--. 1 root root 593812 Jun 17  2015 /usr/lib64/libncursesw_g.a
lrwxrwxrwx. 1 root root     18 Jun 17  2015 /usr/lib64/libncurses++w.so -> libncurses++w.so.5
-rw-r--r--. 1 root root     32 Jun 17  2015 /usr/lib64/libncursesw.so
lrwxrwxrwx. 1 root root     20 Jun 17  2015 /usr/lib64/libncurses++w.so.5 -> libncurses++w.so.5.9
lrwxrwxrwx. 1 root root     18 Jun 17  2015 /usr/lib64/libncursesw.so.5 -> libncursesw.so.5.9
-rwxr-xr-x. 1 root root  76968 Jun 17  2015 /usr/lib64/libncurses++w.so.5.9
-rwxr-xr-x. 1 root root 208400 Jun 17  2015 /usr/lib64/libncursesw.so.5.9

当我运行./configure:时

./configure --with-features=huge 
            --enable-fail-if-missing 
            --enable-luainterp=yes 
            --enable-mzschemeinterp 
            --enable-perlinterp 
            --enable-pythoninterp=yes 
            --with-python-config-dir=/usr/lib64/python2.7/config 
            --enable-python3interp=yes 
            --enable-tclinterp=yes 
            --enable-rubyinterp=yes 
            --enable-cscope 
            --enable-multibyte 
            --enable-gui=gtk2 
            --prefix=$HOME/Build/vim

我得到

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.

我能做什么?

我在Fedora23上遇到了同样的问题。这是我的解决方案:

  1. 确保已安装ncurses-devel
  2. CFLAGS=-fPIC/configure--使用tlib=ncurses和your_options

我检查了config.log,发现gcc抱怨缺少"-fPIC"

您显然没有安装ncurses的开发包。在Fedora23上,这将是ncurses-devel,例如ncurses-devel-5.9-21.20150214.fc23.x86_64

否则,您只有运行时库(这是必需的)。

一旦你有了它,vim 7.4的配置就会显示这样的内容:

checking --with-tlib argument... empty: automatic terminal library selection
checking for tgetent in -ltinfo... yes
checking whether we talk terminfo... yes
checking what tgetent() returns for an unknown terminal... zero
checking whether termcap.h contains ospeed... yes
checking whether termcap.h contains UP, BC and PC... yes
checking whether tputs() uses outfuntype... no

进一步阅读:

  • 如何在fedora中安装ncurses库
  • RPM资源ncurses开发

相关内容

  • 没有找到相关文章

最新更新