问题
I am trying to build vim in my user dir after recently upgraded to Fedora 23
I have ncurses and ncurses-devel
[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!
Here is the proof:
[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
When I run ./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
I get
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.
What can I do ?
回答1:
I ran into the same issue on Fedora23. Here is my solution:
- make sure you have
ncurses-devel
installed - CFLAGS=-fPIC ./configure --with-tlib=ncurses and your_options
I checked the config.log and found that gcc complained the lack of '-fPIC'
回答2:
You apparently do not have the development package for ncurses installed. On Fedora23, that would be ncurses-devel
, e.g., ncurses-devel-5.9-21.20150214.fc23.x86_64
Without that, you have only the runtime libraries (which are required).
Once you have that, the configuration for vim 7.4 would show something like this:
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
Further reading:
- how to install ncurses library in fedora?
- RPM resource ncurses-devel
来源:https://stackoverflow.com/questions/34693071/ncurses-not-found-when-trying-to-build-vim