que acaba de descubrir ncurses y acaba de comenzar el aprendizaje que, sin embargo los ejemplos en mi tutorial no se compilan en mi equipo.No es capaz de compilar C/C++ código que está usando ncurses
tuve que instalar manualmente ncurses y también lo hizo mediante la introducción de "apt-get install libncurses5-dev libncursesw5-dev". Tuve que hacer esto porque antes de hacerlo, recibí un error al decir que no podía "#incluir".
Instalación funcionó, pero ahora me sale este error en su lugar:
[email protected]:~/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
El código compilado I es similar al siguiente:
#include <ncurses.h>
int main(){
initscr();
printw("Hai thar world...");
refresh();
getch();
endwin();
return 0;
}
¿Por qué aparece este error. Y aún más importante, ¿cómo puedo arreglar esto?
estoy bastante nuevo en C++ por lo que este concepto es nuevo para mí. ¿Siempre tengo que hacer esto cuando uso una biblioteca no incluida en el compilador? – Touzen
Sí. El archivo de encabezado le permite compilar su código al hacer coincidir una declaración de función con las llamadas en su código. El trabajo del enlazador es encontrar el * código ejecutable real * para cada función utilizada en su programa, y eso es especificando el nombre de la biblioteca encapsulante en tiempo de enlace (así como los archivos de objeto para su propio código). –
Exactamente: necesita vincular todas las bibliotecas, incluso las estándar. –