En mi caja de OpenSUSE 12.3 no hay enlaces a libcurses con ncurses instalado. Cualquier programa C que intente utilizar el distintivo -lcurses fallará hasta que cambie el indicador a -lncurses.
OpenSUSE 12.3 > ls -al /usr/lib64/*curses*
-rw-r--r-- 1 root root 2225910 Jan 25 2013 /usr/lib64/libncurses.a
-rw-r--r-- 1 root root 780540 Jan 25 2013 /usr/lib64/libncurses++.a
-rw-r--r-- 1 root root 69 Jan 25 2013 /usr/lib64/libncurses.so
-rw-r--r-- 1 root root 782884 Jan 25 2013 /usr/lib64/libncurses++w.a
-rw-r--r-- 1 root root 2768222 Jan 25 2013 /usr/lib64/libncursesw.a
-rw-r--r-- 1 root root 70 Jan 25 2013 /usr/lib64/libncursesw.so
Los enlaces también faltan en Fedora 17. Sin embargo, en Ubuntu 13.04 los enlaces están presentes:
Ubuntu 13.04 > ls -al /usr/lib/x86_64-linux-gnu/*curses*
lrwxrwxrwx 1 root root 12 Feb 8 2013 /usr/lib/x86_64-linux-gnu/libcurses.a -> libncurses.a
lrwxrwxrwx 1 root root 13 Feb 8 2013 /usr/lib/x86_64-linux-gnu/libcurses.so -> libncurses.so
-rw-r--r-- 1 root root 294180 Feb 8 2013 /usr/lib/x86_64-linux-gnu/libncurses.a
-rw-r--r-- 1 root root 158798 Feb 8 2013 /usr/lib/x86_64-linux-gnu/libncurses++.a
-rw-r--r-- 1 root root 31 Feb 8 2013 /usr/lib/x86_64-linux-gnu/libncurses.so
Así compilar con -lcurses fallará en OpenSUSE y Fedora, pero trabajar en Ubuntu. La compilación con -lncurses funcionará para las tres distribuciones.
Para llevar: si quiere que su código se compile en diferentes distribuciones de Linux, debe usar -lncurses.
En sistemas como Solaris, libcurses.so es la biblioteca original (Unix) de curses (o una biblioteca de curses mejorada, pero no la biblioteca libncurses de GNU). En los sistemas Linux, no hay diferencia. –
@JonathanLeffler: Lo mismo para otras plataformas como IBM AIX, no hay ncurses sino las maldiciones originales o mejoradas. – Luciano