Como uso o graphics.h no Ubuntu?

19

Existe algum compilador baseado em Linux que suporte graphics.hbiblioteca? Quero implementar programas gráficos. Por favor, informe-me se existe algum software desse tipo.

Caso contrário, como posso usá-lo?

Atul Singh
fonte
O que exatamente você precisa saber? Os compiladores devem encontrar todos os cabeçalhos se você colocar os ouvintes corretos .. umm ... em seu arquivo de origem.
Braiam 17/09/14
@Braiam O compilador não encontrará magicamente um arquivo de cabeçalho apenas porque você o inclui. Em primeiro lugar, claramente esse arquivo precisa ser instalado no seu sistema (normalmente os arquivos de cabeçalho vêm com *-devpacotes nas distribuições do Linux) - o compilador não fará o download para você. Em segundo lugar, esse arquivo de cabeçalho precisa estar em algum local padrão onde um compilador o procurará (como /usr/include), ou então esse local deve ser especificado -Ina linha de comando (para gccou g++). Além disso, você geralmente precisa das libs tempo de execução para o estágio de ligação (exceto para libs somente cabeçalho) ...
Malte Skoruppa
@ MalteSkoruppa bem, mas o que você precisa para usá-lo? Coloque nos cabeçalhos, não?
Braiam 17/09/14
@Braiam Err ... o que você está perguntando? Olha, a pergunta do OP é apenas esta: o que preciso fazer para poder usar a graphic.hbiblioteca no Ubuntu? Está perfeitamente claro. Uma resposta apropriada explicará quais pacotes são necessários e como instalá-los (como a resposta existente) e, possivelmente, quais parâmetros são necessários na linha de comando no momento da compilação.
Malte Skoruppa
@MalteSkoruppa você está lendo o corpo?
Braiam 17/09/14

Respostas:

31

Existem várias opções disponíveis para fazer a programação gráfica usando o Ubuntu.

Usando SDL

Se você deseja usar graphics.hna plataforma Ubuntu, você precisa compilar e instalar libgraph. É a implementação da API de gráficos turbo c no Linux usando SDL.

Não é muito poderoso e adequado para aplicação de qualidade de produção, mas é simples e fácil de usar para fins de aprendizado.

Você pode baixá-lo aqui .

  1. Primeiro adicione o repositório Universe (já que alguns pacotes necessários não estão disponíveis no repositório principal):

    sudo add-apt-repository universe
    sudo apt-get update
  2. Segunda instalação: build-essential e alguns pacotes adicionais:

    • Para versões anteriores a 18.04:

      sudo apt-get install libsdl-image1.2 libsdl-image1.2-dev guile-1.8 \
      guile-1.8-dev libsdl1.2debian libart-2.0-dev libaudiofile-dev \
      libesd0-dev libdirectfb-dev libdirectfb-extra libfreetype6-dev \
      libxext-dev x11proto-xext-dev libfreetype6 libaa1 libaa1-dev \
      libslang2-dev libasound2 libasound2-dev build-essential
    • Para 18.04 : A partir do Ubuntu 18.04 guile-2.0funciona e libesd0-devestá obsoleto. Para isso, você precisa adicionar repositórios de xenialin sources.list.

      sudo nano /etc/apt/sources.list

      Adicione estas linhas:

      deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe
      deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe

      Corra sudo apt-get update. Em seguida, instale os pacotes usando:

      sudo apt-get install libsdl-image1.2 libsdl-image1.2-dev guile-2.0 \
      guile-2.0-dev libsdl1.2debian libart-2.0-dev libaudiofile-dev \
      libesd0-dev libdirectfb-dev libdirectfb-extra libfreetype6-dev \
      libxext-dev x11proto-xext-dev libfreetype6 libaa1 libaa1-dev \
      libslang2-dev libasound2 libasound2-dev
  3. Agora extraia o libgraph-1.0.2.tar.gzarquivo baixado .

  4. Vá para a pasta extraída e execute o seguinte comando:

    ./configure
    make
    sudo make install
    sudo cp /usr/local/lib/libgraph.* /usr/lib
  5. Agora você pode usar #include<graphics.h>no Ubuntu e a seguinte linha no seu programa:

    int gd=DETECT,gm; 
    initgraph(&gd,&gm,NULL);

Aqui está um exemplo de programa usando graphics.h:

/*  demo.c */
#include <graphics.h>

int main()
{
   int gd = DETECT,gm,left=100,top=100,right=200,bottom=200,x= 300,y=150,radius=50;
   initgraph(&gd,&gm,NULL);
   rectangle(left, top, right, bottom);
   circle(x, y, radius);
   bar(left + 300, top, right + 300, bottom);
   line(left - 10, top + 150, left + 410, top + 150);
   ellipse(x, y + 200, 0, 360, 100, 50);
   outtextxy(left + 100, top + 325, "C Graphics Program");

   delay(5000);
   closegraph();
   return 0;
}
  • Para compilá-lo, use

    gcc demo.c -o demo -lgraph
  • Para executar o tipo

    ./demo

Saída da demonstração 1

Usando OpenGL (via GLUT)

Embora o OpenGL seja basicamente feito para programação 3D, o desenho de formas 2D fornece o esboço e a introdução básicos do OpenGL e dá a idéia de como iniciar o desenho de objetos no OpenGL.

  • Para instalar o GLUT, abra o terminal e digite sudo apt-get install freeglut3-dev .
  • Aqui está um programa gráfico simples usando GLUT
/*  demo.c */
#include <GL/gl.h>
#include <GL/glut.h>
#include <GL/glu.h>

void setup() {   glClearColor(1.0f, 1.0f, 1.0f, 1.0f); }

void display()
   {
      glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
      glColor3f(0.0f, 0.0f, 0.0f);
      glRectf(-0.75f,0.75f, 0.75f, -0.75f);
      glutSwapBuffers();
   }

int main(int argc, char *argv[])
  {
     glutInit(&argc, argv);
     glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
     glutInitWindowSize(800,600);
     glutCreateWindow("Hello World");

     setup();
     glutDisplayFunc(display);
     glutMainLoop();
     return 0;
  }
  • Compile usando

    gcc demo.c -o demo -lglut -lGL

  • Execute-o usando

    ./demo

Saída da demonstração 2

g_p
fonte
1
Eu estou usando SDL, mas eu fiz todos os animais, como disse, libgraph intall também, mas depois de executar o programa, ele pára e termina de repente com um erro [XCB] Número de sequência desconhecida fila durante o processamento
Luzan Baral
qual versão do Ubuntu você está usando?
g_p
Estou usando o ubuntu 14.04
Luzan Baral
@LuzanBaral, parece um problema com o GTK, mas você ainda pode executar o programa.
g_p
1
Para erros detectados durante a instalação do libgraph usando SDL, consulte askubuntu.com/a/995265/719469 e askubuntu.com/a/717262/719469 (economizará muito tempo, dizendo isso por experiência pessoal: P)
Kewal Shah
2

Se você quiser usar o graphics.h no ubuntu ou em qualquer outra distribuição Linux, prefiro o libxbgi. Ele pode fazer quase tudo o que você espera do graphics.h para Windows. Você pode baixá-lo aqui: http://libxbgi.sourceforge.net/

Caso contrário, se você quiser criar alguns gráficos de ponta, você estará lá para SDL (principalmente para programação de videogames) e OpenGL (para gráficos 3D). Você também pode usar uma mistura dos dois. Um exemplo é o briquolo do jogo (a ortografia pode estar errada).

PROGRAMAÇÃO GRÁFICA FELIZ !!

Gprogrammer
fonte