Hack x Crack - Comunidad de Seguridad informática

Programación => C / C++ => Mensaje iniciado por: Bragi en Septiembre 01, 2014, 07:28:12 pm

Título: Como instalar ncurses.h
Publicado por: Bragi en Septiembre 01, 2014, 07:28:12 pm
Buenas... He empezado con C y la verdad me esta resultando bastante molesto. El último problema que he tenido es que en linux no exite la directiva conio.h. Asique buscando y buscando encontré la directiva ncurses.h que tiene los homologos a conio.h y parece ser que es más completo. Usando Geany escribí:
Citar
#include <stdio.h>
#include <ncurses.h>

int main() {
    erase();
    printf("Hola mundo");
    return 0;
}
Guardo, compilo. En este paso el programa me devuelve:
Citar
prueba1.c:2:21: fatal error: ncurses.h: No existe el fichero o el directorio
También he intentado añadiendo initscr() y endwin() pero no funciona.
Compilando desde la terminal con:
Citar
gcc prueba1.c -o prueba1 -lncurses
y nada... Por  si el problema fuera del Geany he instalado el C::B y tampoco. No hay manera. El SO es debian y los IDEs fueron instalados con un apt-get install.
¿Cuál es el problema? ¿Como consigo usar ncurses?Si conoceis otra directiva con los mismo usos es bien recibida jajaja  que no sea conio.h
Gracias de antemano
Título: Re:Como instalar ncurses.h
Publicado por: stakewinner00 en Septiembre 01, 2014, 08:48:40 pm
Instalaste la lib de ncurses libncurses5-dev? dale un locate ncurses a ver si realmente existe
Título: Re:Como instalar ncurses.h
Publicado por: Bragi en Septiembre 02, 2014, 10:30:41 am
Instalaste la lib de ncurses libncurses5-dev? dale un locate ncurses a ver si realmente existe
Bueno stakewinner00, como no sabía que era lo de libncurses5-dev ni nada del locate (soy nuevo en linux) puse locate ncurses en terminal(root) y de los archivos encontrados no hay nada llamado libncurses5-dev. ¿Hago un apt-get install libncurses5-dev? o no hay solución rápida jajajaja
Título: Re:Como instalar ncurses.h
Publicado por: stakewinner00 en Septiembre 02, 2014, 11:06:11 am
Lo confundiste un poco o quizás no me explique lo suficiente. Haciendo un "locate ncurses.h" tendría que salir unos archivos en /usr/include con ese nombre, si no existe el fichero, una de las causas es que no tengas instalado el paquete libncurses5-dev (para instalar basta con "sudo apt-get install  libncurses5-dev". Este paquete contiene la librería compuesta de varios archivos donde uno de ellos es ncurses.h.

Los paquetes acabados con -dev como aparenta son los que sirven para los "developers" y contienen librerías y demás.

Saludos
Título: Re:Como instalar ncurses.h
Publicado por: Bragi en Septiembre 02, 2014, 12:02:17 pm
Lo confundiste un poco o quizás no me explique lo suficiente. Haciendo un "locate ncurses.h" tendría que salir unos archivos en /usr/include con ese nombre, si no existe el fichero, una de las causas es que no tengas instalado el paquete libncurses5-dev (para instalar basta con "sudo apt-get install  libncurses5-dev". Este paquete contiene la librería compuesta de varios archivos donde uno de ellos es ncurses.h.

Los paquetes acabados con -dev como aparenta son los que sirven para los "developers" y contienen librerías y demás.

Saludos
Pues tenías razón, en usr/include no había nada, busqué con locate y manualmente y no se encontraba. Hice 'apt-get install libncurses5-dev' y por lo visto se ha instalado. Pero (siempre hay un pero) cuando intento construir:
Citar
#include <stdio.h>
#include <ncurses.h>

int main() {
   erase();
   printf("Hola mundo");
   
   return 0;
   }
me devuelve error en compilación:
Citar
/tmp/cczv3uYR.o: In function `main':
prueba.c:(.text+0xa): undefined reference to `stdscr'
prueba.c:(.text+0x22): undefined reference to `wmove'
collect2: error: ld returned 1 exit status
¿Sabes por que es?
Gracias de antemano
PD:Me parecio bueno el aporte del significado de 'dev', no sabia que era y lo veia por todos lados :)
Título: Re:Como instalar ncurses.h
Publicado por: stakewinner00 en Septiembre 02, 2014, 12:24:43 pm
Dale un "sudo ldconfig" a ver si funciona.
Título: Re:Como instalar ncurses.h
Publicado por: Bragi en Septiembre 02, 2014, 02:07:34 pm
Dale un "sudo ldconfig" a ver si funciona.
Le doy un ldconfig y nada... el geany me sige dando el mismo error.
PD: no se si es util para resolver el problema pero Geany me deja compilar, el error viene al intentar construir para poder ejecutar el codigo.
Título: Re:Como instalar ncurses.h
Publicado por: stakewinner00 en Septiembre 02, 2014, 03:51:43 pm
Si antes el debug ya salio que era cosa del linker, busca por internet a ver.
Título: Re:Como instalar ncurses.h
Publicado por: ravenheart en Septiembre 03, 2014, 12:03:23 am
PD: no se si es util para resolver el problema pero Geany me deja compilar, el error viene al intentar construir para poder ejecutar el codigo.

Para construir el binario final necesitas vincular tu código con ncurses con el comando que pusiste antes:

gcc prueba1.c -o prueba1 -lncurses
Título: Re:Como instalar ncurses.h
Publicado por: Bragi en Septiembre 03, 2014, 01:38:35 am
PD: no se si es util para resolver el problema pero Geany me deja compilar, el error viene al intentar construir para poder ejecutar el codigo.

Para construir el binario final necesitas vincular tu código con ncurses con el comando que pusiste antes:

gcc prueba1.c -o prueba1 -lncurses
ok, todo correcto. Le heche un gcc desde la terminal de geany y como la seda. El problema cual era(?). ¿El geany no compila bien?