Not able to compile C/C++ code that's using ncurses

Touzen picture Touzen · Jun 30, 2011 · Viewed 26.4k times · Source

I've just discovered ncurses and have just started learning it, however the examples in my tutorial don't compile on my computer.

I had to install ncurses manually and did so by entering "apt-get install libncurses5-dev libncursesw5-dev". I had to do this because before having done so I got an error saying that I could not "#include ".

Installing it worked, but now I get this error instead:

touzen@comp:~/learning_ncurses$ g++ -o hello_world hello_world.cpp
/tmp/ccubZbvK.o: In function `main':
hello_world.cpp:(.text+0xa): undefined reference to `initscr'
hello_world.cpp:(.text+0x16): undefined reference to `printw'
hello_world.cpp:(.text+0x1b): undefined reference to `refresh'
hello_world.cpp:(.text+0x20): undefined reference to `stdscr'
hello_world.cpp:(.text+0x28): undefined reference to `wgetch'
hello_world.cpp:(.text+0x2d): undefined reference to `endwin'
collect2: ld returned 1 exit status

The code I compiled looks like this:

#include <ncurses.h>
int main(){
    initscr();
    printw("Hai thar world...");
    refresh();
    getch();
    endwin();

    return 0;
}

Why do I get this error. And even more importantly, how do I fix this?

Answer

Karoly Horvath picture Karoly Horvath · Jun 30, 2011

you have to link the ncurses library

g++ -o hello_world hello_world.cpp -lncurses