Alistair Alistair - 2 months ago 19
C Question

Undefined reference when using ncurses on linux

I'm trying to start developing a program using ncurses on Linux. I can't even get the Hello World example to compile. Here's the code:

#include <curses.h>

int main()
{
initscr();
printw("Hello, world.");
refresh();
getch();
endwin();
return 0;
}


When I attempt to compile, I get:

hello.c:(.text+0x12): undefined reference to `initscr'


For every one of those called functions.

I installed ncurses via apt-get, and also by downloading the sources and compiling, installing, etc.

I have tried
#include
both
curses.h
and
ncurses.h
.

What is going on?

Answer Source

Have you used the -lcurses option when linking?

Including the header files let the code compile (because the compiler knows what the function call looks like from the .h file), but the linker needs the library file to find the actual code to link into your program.