Make can't find curses.h
Asked Answered
C

3

11

I have this program called samtools (version 1.3) that is used for manipulating the files that you get from DNA sequencing experiments.

The downloaded program is contained in a folder. To set the program up I enter that folder in the terminal (on an ubuntu computer). I enter the commando "make".

it runs an prints what it does but terminates with the error message:

bam_tview_curses.o bam_tview_curses.c
bam_tview_curses.c:41:20: fatal error: curses.h: No such file or directory
 #include <curses.h>
                    ^
compilation terminated.
make: *** [bam_tview_curses.o] Error 1

My initial response (after searching the Internet) was that curses was not installed, and I tried to remedy that using sudo (apparently my user was not in the list of sudoers though.

So I tried to see if curses was already installed, after consulting the Internet I tried

ldconfig -p | grep ncurses

which gave the output:

libncursesw.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/libncursesw.so.5
libncurses.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/libncurses.so.5

I took this as curses was installed. But that leaves me at a loss what could have happened. But this should at least mean that curses are there right? I'm not very experianced using ubuntu or C programs (I took a smaller course in C long ago and whil I've used linux computers quite some I've mostly used the terminal for navigation)

Happy for Help!

Commonly answered 5/2, 2016 at 4:34 Comment(0)
W
19

only

sudo apt-get install libncurses-dev

worked for me.

Womanish answered 16/7, 2020 at 7:51 Comment(1)
apk add ncurses-dev on AlpineBooty
B
7

ncurses is a library used for programming terminal based applications. Ubuntu users (16.04.1-Ubuntu) should install "libncurses5-dev" and "libncursesw5-dev" packages :

sudo apt-get install libncurses5-dev libncursesw5-dev
Burglarize answered 25/8, 2017 at 7:58 Comment(1)
Just libncurses-dev in Ubuntu 19.04.Eta
A
2

Most Linux distributions have the header files like curses.h in a seperate package, as they are only required for compiling. Saves some space for the 95% of users that will never need them.

I don't use Ubuntu, but usually those packages are denoted with a -dev or -devel postfix. Should be easy to find via your package manager. After installing the header files the compile should proceed, you might need to install header files for other packages, so take a close look at the output.

Aboutface answered 5/2, 2016 at 5:1 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.