Como la libreria conio.h es de Borland he instalado la libreria ncurses, compilar lo hace correctamente, pero al construir me el siguiente error:
construyendo el archivo: entrada_salida5.c ...
gcc "entrada_salida5.c" -o "entrada_salida5"
/tmp/cc6t1siN.o: In function 'main':
entrada_salida5.c:(text+0xb): undefined reference to 'stdscr'
entrada_salida5.c:(text+0x10): undefined reference to 'wgetch'
collect2: Id devolvió el estado de salida 1
Completado ...incorrectamente
El archivo que compilo es este, porque estoy siguiendo un libro para aprender a programar:
#include <stdio.h>
#include <curses.h>
int main (void)
{
char letra;letra = getch();
putchar (letra);
}
Espero que podais ayudarme en breve, Gracias.
Hola virako...
Como estas?, Mira el problema esta en la forma de compilar tu programa , cuando compilas un programa con instrucciones estandar (por llamarlo de algun modo) la forma de hacerlo es: gcc arch_prog.c -o arch_ejecutable, pero para compilar un programa con ncurses es de esta forma gcc arch_prog.c -o arch_ajecutable -lncurses si mal no recuerdo.
Cualquier otra duda, encantado te ayudo.
Yo esque suelo compilar con
Yo esque suelo compilar con Anjuta, con la tecla F9, construyo con F11 y ejecuto con F3. Si sabes que hay que hacer en Anjuta para que se ejecute, por favor, ayudame.
Gracias por tu respuesta
prueba con este editor...vim
No, lo lamento soy novato igual que tu y no utilzo anjunta solo utilizo vim, pero prueba tu pequeño programa compilandolo en la linea de ordenes y me cuentas como te fue.
Al intentar compilar como tu
Al intentar compilar como tu dices, "gcc arch_prog.c -o arch_ajecutable -lncurses", como mi programa no esta compilado ni construido no existe el executable, y construirlo no puedo porque es donde falla.
No uso habitualmente Anjuta
No uso habitualmente Anjuta pero dado tu comentario lo abri luego de haberlo instalado hace un tiempo...
Si vas a Settings (lo tengo en ingles) ->Compiler and linker settings -> Pestaña Libraries-> escribes ncurses (no lncurses) y pones add-> Close-> Y pones yes a la pregunta q te hace...
Ahora funcionara, aunq si haces algun proyecto q no use curses, tendrias q sacar la opcion...
Por eso, debe haber alguna otra forma para q te agregue las librerias solo al proyecto actual...
Pero para ir aprendiendo, sirve...
he agregado la ncurses y
he agregado la ncurses y cuando construyo me da el siguiente error:
Creo q le pifiaste, tenias q
Creo q le pifiaste, tenias q poner ncurses, y pusiste nsurses...
he puesto ncurses, pero no
he puesto ncurses, pero no sale
Hola
¿Has instalado las librerías gcc y las ncurses desde synaptic antes de hacer nada? Es que si no no va el asunto.
¿Qué pones exactamente cuando compilas tu programa?
Saludos :-)
MiBlog
Linux Music 3.0
He instalado desde el
He instalado desde el synaptic las librerias ncurses y uso Anjuta, cuando compilo compila bien, y compilo usando el F9. Al construir con F11 es cuando me tira el error ke he mencionado anteriormente.
Hola
El error qaue te da en Anjuta es porque no reconoce ncurses, para que las reconozca tienes que hacer lo que te han explicado más arriba. De todas formas te aconsejo que primero compiles por terminal para asegurarnos que todo va ok, para ello :
y para ejecutarlo
Si quieres hice un videotutorial sobre compilar por terminal en C/C++, es bastante malillo pero si te sirve Pincha Aquí
Saludos :-)
MiBlog
Linux Music 3.0
Hola
El include lo escribes mal, es ncurses y no curses, así:
Te dejo un enlace que te servirá Pincha Aquí
Aunque tanto conio como ncurses están desfasadas!!! Pero para aprender a programar siempre vienen bien ;-)
Saludos :-)
MiBlog
Linux Music 3.0
He puesto tal y como tu me
He puesto tal y como tu me has dicho y me sigue dando el mismo error, aunque leere el link ke me has puesto, y ya contare despues ke tal me ha ido.
Gracias por las respuestas.
El problema lo tienes como compilar tu programa
No recuerdo bien, pero yo he realizado programas con ncurses hace algun tiempo atras, creo que da lo mismo escribir #include <curses.h> o #include <ncurses.h> no estoy seguro, pero el problema esta en compilarlo te suguiero que revises el manual de gcc para ver de que forma lo puedes compilar
a mi me compila
Desde consola, con:
gcc pruebacurses.c -o pruebacurses -lncurses
Nunca he usado anjuta, uso kdevelop, así que no puedo ayudarte más.
Saludos
Usuario registrado de Linux Nº 504222
RE:Error usando la libreria ncurses
Usa getchar() en lugar de getch(), a mi me funciono con tu mismo codigo...
Saludos
solucionado
poniendo getchar() me ha funcionado, gracias.
Y que tal con este código
Y que tal con este código ???
Mismo error....con curses.h
#include <stdlib.h>
#include <curses.h>
#include <errno.h>
#include <unistd.h>
#include "utilfcns.h"
int main(void)
{
int n, maxx, maxy;
char *str;
app_init();
if(!has_colors()) {
printw("Tu terminal no soporta colores..je\n");
refresh();
sleep(3);
exit(EXIT_FAILURE);
}
if(start_color() == ERR)
err_quit("start_color");
/* Set up some simple color assignments */
init_pair(COLOR_BLACK, COLOR_BLACK, COLOR_BLACK);
init_pair(COLOR_GREEN, COLOR_GREEN, COLOR_BLACK);
init_pair(COLOR_RED, COLOR_RED, COLOR_BLACK);
init_pair(COLOR_CYAN, COLOR_CYAN, COLOR_BLACK);
init_pair(COLOR_WHITE, COLOR_WHITE, COLOR_BLACK);
init_pair(COLOR_MAGENTA, COLOR_MAGENTA, COLOR_BLACK);
init_pair(COLOR_BLUE, COLOR_BLUE, COLOR_BLACK);
init_pair(COLOR_YELLOW, COLOR_YELLOW, COLOR_BLACK);
getmaxyx(stdscr, maxy, maxx);
if((str = malloc(sizeof(char) * maxx)) == NULL)
err_quit("malloc");
for(n = 1; n <= 8; n++) {
memset(str, ACS_BLOCK, maxx);
attron(COLOR_PAIR(n));
printw("%s", str);
refresh();
}
sleep(3);
app_exit();
exit(EXIT_SUCCESS);
}
ALguna sugerencia...?
Gracias
[CENTER][URL=http://imageshack.us][IMG]http://img395.imageshack.us/img395/928/sickdow...
Imagino que el error se debe
Imagino que el error se debe a que en tu libreria utilfcns.h hay una intruccion mal definida, como no muestras el error esto es una mera especulacion, dinos que error te lanza
Error con ncurses
tengo un problema, cuando compilo los addons del asterisk para que me muestre la interfaz me pasa lo siguiente:
root@MYSERVERNAME:/usr/src/asterisk-addons-1.4.9# make menuselect -i
make[1]: Entering directory `/usr/src/asterisk-addons-1.4.9/menuselect'
make[2]: Entering directory `/usr/src/asterisk-addons-1.4.9/menuselect'
make[2]: `menuselect' is up to date.
make[2]: Leaving directory `/usr/src/asterisk-addons-1.4.9/menuselect'
make[1]: Leaving directory `/usr/src/asterisk-addons-1.4.9/menuselect'
**************************************************
*** Install ncurses to use the menu interface! ***
**************************************************
menuselect changes NOT saved!
indicandome que no esta el ncurses
procedo a instalarlo y me muestra lo siguiente:
root@MYSERVERNAME:/usr/src/asterisk-addons-1.4.9# sudo apt-get install ncurses
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
El paquete ncurses no está disponible, pero algún otro paquete hace referencia
a él. Esto puede significar que el paquete falta, está obsoleto o sólo se
encuentra disponible desde alguna otra fuente
E: El paquete «ncurses» no tiene un candidato para la instalación
que puedo hacer???
gracias de antemano...
Error usando la libreria ncurses
Gracias me a servido