Conflito graphics.h e conio.h (ncurses.h)

1. Conflito graphics.h e conio.h (ncurses.h)

Bianca
bncvr

(usa Ubuntu)

Enviado em 04/04/2017 - 09:22h

Olá, estou tentando rodar um programa em c que é um relógio analógico. Inicialmente quando não foi reconhecida a bib conio.h usei a ncurses. Entendo pouco de programação e não estou conseguindo compilar, acho que pode ser conflito entre a graphics.h e ncurses. Há como rodar essas duas bibs juntas?

Msg compilador:
In file included from /usr/include/conio.h:9:0,
from AnalogClockProgram.c:2:
/usr/include/curses.h:881:28: error: conflicting types for ‘getmaxx’
extern NCURSES_EXPORT(int) getmaxx (const WINDOW *); /* generated */
^~~~~~~
In file included from AnalogClockProgram.c:1:0:
/usr/local/include/graphics.h:70:6: note: previous declaration of ‘getmaxx’ was here
int getmaxx(void);
^~~~~~~
In file included from /usr/include/conio.h:9:0,
from AnalogClockProgram.c:2:
/usr/include/curses.h:882:28: error: conflicting types for ‘getmaxy’
extern NCURSES_EXPORT(int) getmaxy (const WINDOW *); /* generated */
^~~~~~~
In file included from AnalogClockProgram.c:1:0:
/usr/local/include/graphics.h:71:6: note: previous declaration of ‘getmaxy’ was here
int getmaxy(void);
^~~~~~~
AnalogClockProgram.c:4:16: fatal error: dos.h: No such file or directory
#include<dos.h>
^
compilation terminated.



  


2. Re: Conflito graphics.h e conio.h (ncurses.h)

Paulo
paulo1205

(usa Ubuntu)

Enviado em 04/04/2017 - 11:38h

Prezado,

Curses não é um substituto idêntico a ConIO. Várias coisas com nomes parecidos ou mesmo idênticos funcionam de modos bem distintos. Por isso, você precisaria fazer adaptações.

BGI, que usa "graphics.h", é pior ainda. O que de mais parecido existe talvez seja SDL, e eu não acho nada parecido.



Existem, porém, adaptadores que funcionam como camadas de conversão entre funções nativas do mundo UNIX ou de bibliotecas comuns desse ambiente (como Curses, X11 ou SDL) e as antigas APIs da época do MS-DOS e Turbo C. Existem, por exemplo, adaptadores que oferecem a API da ConIO, que usam internamente chamadas a termios, terminfo e Curses, e adaptadores de BGI para SDL.

O problema de adaptadores é que a camada a mais pode ser um fator de degradação de desempenho. Se você quiser fazer, por exemplo, joguinhos, usar SDL diretamente possivelmente seria melhor do que usar BGI, chamando um adaptador de BGI para SDL, que então vai chamar a SDL.

Adaptadores devem ser usados apenas como solução rápida para fazer um programa antigo funcionar num sistema diferente e no menor tempo possível. Se for para fazer coisas novas ou para aprender a fazer coisas novas, é melhor começar logo com a tecnologia nova, não com a obsoleta.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts