Wie verwende ich graphics.h in Ubuntu?


19

Gibt es einen Linux-basierten Compiler, der die graphics.hBibliothek unterstützt ? Ich möchte Grafikprogramme implementieren. Bitte teilen Sie mir mit, ob es eine solche Software gibt.

Wenn nicht, wie kann ich es verwenden?


Was genau musst du wissen? Die Compiler sollen alle Header finden, wenn Sie die richtigen Hörer in Ihre Quelldatei einfügen.
Braiam

@Braiam Der Compiler findet eine Header-Datei nicht auf magische Weise, nur weil Sie sie einbinden. Zunächst muss klar sein, dass die Datei *-devauf Ihrem System installiert sein muss (normalerweise werden Header-Dateien mit Paketen in Linux-Distributionen geliefert) - der Compiler lädt sie nicht für Sie herunter. Zweitens muss sich diese Headerdatei entweder an einem Standardspeicherort befinden, an dem ein Compiler danach sucht (z. B. /usr/include), oder dieser Speicherort muss in -Ider Befehlszeile mit (für gccoder g++) angegeben werden. Außerdem benötigen Sie normalerweise die Laufzeitbibliotheken für die Linking-Phase (außer für reine Header-Bibliotheken) ...
Malte Skoruppa

@MalteSkoruppa gut, aber was brauchst du, um es zu benutzen? Schreiben Sie es in Ihre Überschriften, nein?
Braiam

@Braiam Err ... was fragst du? Schauen Sie, die Frage des OP ist nur: Was muss ich tun, um die graphic.hBibliothek unter Ubuntu nutzen zu können? Es ist vollkommen klar. Eine entsprechende Antwort erklärt, welche Pakete benötigt werden und wie sie installiert werden (wie es die vorhandene Antwort tut), und möglicherweise welche Parameter zur Kompilierungszeit in der Befehlszeile benötigt werden.
Malte Skoruppa

@MalteSkoruppa liest du den Körper?
Braiam

Antworten:


31

Für die Grafikprogrammierung mit Ubuntu stehen mehrere Optionen zur Verfügung.

Verwenden von SDL

Wenn Sie graphics.hauf der Ubuntu-Plattform verwenden möchten, müssen Sie kompilieren und installieren libgraph. Es ist die Implementierung der Turbo C-Grafik-API unter Linux mit SDL.

Es ist nicht sehr leistungsfähig und für die Anwendung in Produktionsqualität geeignet, aber für Lernzwecke einfach und benutzerfreundlich.

Sie können es hier herunterladen .

  1. Fügen Sie zuerst das Universum- Repository hinzu (da einige erforderliche Pakete im Haupt-Repository nicht verfügbar sind):

    sudo add-apt-repository universe
    sudo apt-get update
  2. Zweite Installation Build-Essential und einige zusätzliche Pakete:

    • Für Versionen vor dem 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
    • Für 18.04 : Ab Ubuntu guile-2.0funktioniert 18.04 und libesd0-devist veraltet. Dazu müssen Sie Repositories von xenialin hinzufügen sources.list.

      sudo nano /etc/apt/sources.list

      Fügen Sie diese Zeilen hinzu:

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

      Rennen sudo apt-get update. Dann installiere Pakete mit:

      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. Extrahieren Sie nun die heruntergeladene libgraph-1.0.2.tar.gzDatei.

  4. Gehen Sie zum extrahierten Ordner und führen Sie den folgenden Befehl aus:

    ./configure
    make
    sudo make install
    sudo cp /usr/local/lib/libgraph.* /usr/lib
  5. Jetzt können Sie #include<graphics.h>auf Ubuntu und die folgende Zeile in Ihrem Programm verwenden:

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

Hier ist ein Beispielprogramm mit 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;
}
  • Verwenden Sie zum Kompilieren

    gcc demo.c -o demo -lgraph
  • Typ ausführen

    ./demo

Ausgabe von Demo 1

OpenGL verwenden (über GLUT)

Obwohl OpenGL im Grunde genommen für die 3D-Programmierung gedacht ist, vermittelt das Zeichnen von 2D-Formen einen Überblick und eine Einführung in OpenGL sowie eine Vorstellung davon, wie Sie mit dem Zeichnen von Objekten in OpenGL beginnen können.

  • Öffnen Sie zum Installieren von GLUT das Terminal und geben Sie Folgendes ein sudo apt-get install freeglut3-dev.
  • Hier ist ein einfaches Grafikprogramm mit 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;
  }
  • Kompilieren Sie es mit

    gcc demo.c -o demo -lglut -lGL

  • Führen Sie es mit

    ./Demo

Ausgabe von Demo 2


1
Ich benutze SDL, aber ich habe alle Sachen wie gesagt gemacht, intall libgraph auch, aber nach dem Ausführen des Programms stoppt es und endet plötzlich mit einem Fehler [xcb] Unbekannte Sequenznummer während der Verarbeitung der Warteschlange
Luzan Baral

welche Version von Ubuntu benutzt du?
g_p

Ich benutze Ubuntu 14.04
Luzan Baral

@LuzanBaral, Es scheint ein Problem mit GTK zu sein, aber Sie können das Programm trotzdem ausführen.
g_p

1
Für Fehler erfahren , während libgraph Installation mit SDL beziehen askubuntu.com/a/995265/719469 und askubuntu.com/a/717262/719469 (eine Menge Zeit sparen, sagen dies durch persönliche Erfahrung: P)
Kewal Shah

2

Wenn Sie graphics.h in Ubuntu oder einer anderen Linux-Distribution verwenden möchten, dann bevorzuge ich libxbgi. Es kann fast alles, was Sie von der graphics.h für Windows erwarten. Sie können es hier herunterladen: http://libxbgi.sourceforge.net/

Wenn Sie ansonsten High-End-Grafiken erstellen möchten, sind Sie für SDL (hauptsächlich zum Programmieren von Videospielen) und OpenGL (für 3D-Grafiken) da. Sie können auch eine Mischung aus beiden verwenden. Ein Beispiel ist das Spiel Briquolo (Rechtschreibung kann falsch sein).

GLÜCKLICHE GRAFIKPROGRAMMIERUNG !!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.