Realizando las prácticas del capítulo 11 de Programación en Linux con ejemplos de Kurt Wall, el referido a n-curses, me encuentro con el siguiente problema.
Parece ser que para habilitar la depuración es necesario linkar a ncurses_g y habilitar trace(N) en el código. Para probarlo propone el siguiente código:
Código
/* Filename: depurador.c */ #include <curses.h> int main (void) { initscr(); trace(TRACE_CALLS); printw("Establecer nivel de depuración para TRACE_CALLS"); refresh(); endwin(); return 0; }
El caso es que no tenía la biblioteca libncurses_g.a y la instalé den debian 7 con
sudo apt-get install libncurses5-dbg
Al ejecutar el comanda de compilación y depuración
gcc depurador.c -o depurador -lncurses_g
La cantidad de errores es enorme, pongo la parte final
/usr/lib/gcc/i486-linux-gnu/4.7/../../../../lib/libncurses_g.a(lib_echo.o): In function `echo':
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:52: undefined reference to `_nc_tracing'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:53: undefined reference to `SP'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:56: undefined reference to `_nc_retrace_int'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:52: undefined reference to `SP'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:52: undefined reference to `_tracef'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:53: undefined reference to `SP'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:54: undefined reference to `_nc_retrace_int'
/usr/lib/gcc/i486-linux-gnu/4.7/../../../../lib/libncurses_g.a(lib_echo.o): In function `noecho':
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:70: undefined reference to `_nc_tracing'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:71: undefined reference to `SP'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:74: undefined reference to `_nc_retrace_int'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:70: undefined reference to `SP'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:70: undefined reference to `_tracef'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:71: undefined reference to `SP'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_echo.c:72: undefined reference to `_nc_retrace_int'
/usr/lib/gcc/i486-linux-gnu/4.7/../../../../lib/libncurses_g.a(lib_erase.o): In function `werase':
/tmp/buildd/ncurses-5.9/ncurses/base/lib_erase.c:54: undefined reference to `_nc_tracing'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_erase.c:54: undefined reference to `_tracef'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_erase.c:91: undefined reference to `_nc_retrace_int'
/tmp/buildd/ncurses-5.9/ncurses/base/lib_erase.c:91: undefined reference to `_nc_retrace_int'
collect2: error: ld returned 1 exit status
Agradecería me dijérais que es lo que puede pasar. ¿Es posible que haya instalado una libreria de depuración que no corresponda con la versión que tenga instalada de ncurses?
Muchas gracias.