ncurses not found when trying to build vim

statquant picture statquant · Jan 9, 2016 · Viewed 8.5k times · Source

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 ?

Answer

John Chain picture John Chain · Jan 24, 2016

I ran into the same issue on Fedora23. Here is my solution:

  1. make sure you have ncurses-devel installed
  2. CFLAGS=-fPIC ./configure --with-tlib=ncurses and your_options

I checked the config.log and found that gcc complained the lack of '-fPIC'