Ubuntuでgraphics.hを使用するにはどうすればよいですか?


19

graphics.hライブラリをサポートするLinuxベースのコンパイラはありますか?グラフィックプログラムを実装したいので、そのようなソフトウェアがあれば教えてください。

そうでない場合、どのように使用できますか?


正確に何を知る必要がありますか?コンパイラは、ソースファイルに正しい.. umm ...ヒアラーを入れると、すべてのヘッダーを見つけることになっています。
Braiam 14

@Braiamコンパイラは、ヘッダーファイルをインクルードしたからといって魔法のように見つけません。まず、ファイルをシステムにインストールする必要があることは明らかです(通常、ヘッダーファイル*-devにはLinuxディストリビューションのパッケージが付属しています)-コンパイラーはそれをダウンロードしません。次に、そのヘッダーファイルは、コンパイラが検索する標準の場所(など/usr/include)にあるか-I、コマンドラインでその場所を指定する必要があります(for gccまたはg++)。さらに、通常、リンクステージのランタイムライブラリが必要です(ヘッダーのみのライブラリを除く)...
Malte Skoruppa 14

@MalteSkoruppaよく、しかし、あなたはそれを使用するために何が必要ですか?ヘッダーに入れますか?
Braiam 14

@Braiam Err ...何を求めているの?OPの質問はこれだけです。Ubuntuでライブラリを使用するには、何をする必要がありgraphic.hますか?それは完全に明確です。適切な回答では、必要なパッケージとそれらのインストール方法(既存の回答と同様)、およびおそらくコンパイル時にコマンドラインで必要なパラメーターについて説明します。
マルテスコルッパ

@MalteSkoruppaあなたは体を読んでいますか?
Braiam

回答:


31

Ubuntuを使用してグラフィックプログラミングを行うためのオプションがいくつかあります。

SDLを使用する

graphics.hUbuntuプラットフォームで使用する場合は、コンパイルしてインストールする必要がありますlibgraph。これは、SDLを使用したLinuxでのターボcグラフィックスAPIの実装です。

非常に強力で生産品質のアプリケーションに適しているわけではありませんが、学習目的にはシンプルで使いやすいです。

こちらからダウンロードできます。

  1. 最初にユニバースリポジトリを追加します(一部の必須パッケージはメインリポジトリで利用できないため)。

    sudo add-apt-repository universe
    sudo apt-get update
    
  2. 2番目にbuild-essentialおよびいくつかの追加パッケージをインストールします。

    • 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
      
    • 18.04の場合:Ubuntu 18.04からguile-2.0動作し、libesd0-dev非推奨です。このためには、リポジトリの追加する必要がxenialでをsources.list

      sudo nano /etc/apt/sources.list

      次の行を追加します。

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

      を実行しますsudo apt-get update。次に、次を使用してパッケージをインストールします。

      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. ダウンロードしたlibgraph-1.0.2.tar.gzファイルを解凍します。

  4. 抽出されたフォルダーに移動し、次のコマンドを実行します。

    ./configure
    make
    sudo make install
    sudo cp /usr/local/lib/libgraph.* /usr/lib
    
  5. これで#include<graphics.h>、Ubuntuおよびプログラムの次の行で使用できます。

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

以下に使用するサンプルプログラムを示し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;
}
  • コンパイルするには

    gcc demo.c -o demo -lgraph
  • タイプを実行するには

    ./demo

デモ1の出力

OpenGLの使用(GLUT経由)

OpenGLは基本的に3Dプログラミング用に作成されていますが、2Dシェイプの描画はOpenGLの基本的な概要と概要を示し、OpenGLでオブジェクトの描画を開始する方法についてのアイデアを提供します。

  • GLUTをインストールするには、ターミナルを開いてを入力しsudo apt-get install freeglut3-devます。
  • 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;
  }
  • を使用してコンパイルする

    gcc demo.c -o demo -lglut -lGL

  • を使用して実行する

    。/デモ

デモ2の出力


1
キューの処理中に[XCB]不明なシーケンス番号を、私はSDLを使用していますが、私はあまりにも言った、intall libgraphとして、すべてのstuffsをしましたが、プログラムの実行後に、それはエラーで突然停止し、終了
Luzan BARAL

どのバージョンのUbuntuを使用していますか?
g_p 14

私はubuntu 14.04を使用しています
ルザン・バラール

@ LuzanBaral、GTKに問題があるようですが、それでもプログラムを実行できます。
g_p

1
SDLを使用したlibgraphのインストール中に発生したエラーについては、askubuntu.com / a / 995265/719469およびaskubuntu.com/a/717262/719469を参照してください(個人的な経験で言うと、時間を大幅に節約できます:P)
Kewal Shah

2

ubuntuまたは他のLinuxディストリビューションでgraphics.hを使用する場合は、libxbgiを使用します。Windowsのgraphics.hから期待されるほぼすべてのことを実行できます。ここからダウンロードできます:http : //libxbgi.sourceforge.net/

それ以外の場合は、いくつかのハイエンドグラフィックスを実行する場合は、SDL(主にビデオゲームのプログラミング用)およびOpenGL(3Dグラフィックス用)を使用します。2つの混合物を使用することもできます。1つの例は、ゲームブリコロ(スペルが間違っている可能性があります)です。

ハッピーグラフィックスプログラミング!!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.