우분투에서 graphics.h를 어떻게 사용합니까?


19

graphics.h라이브러리 를 지원하는 Linux 기반 컴파일러가 있습니까? 그래픽 프로그램을 구현하고 싶습니다. 그런 소프트웨어가 있으면 알려주세요.

그렇지 않으면 어떻게 사용할 수 있습니까?


정확히 무엇을 알아야합니까? 소스 파일에 올바른 리스너를 넣으면 컴파일러에서 모든 헤더를 찾아야합니다.
Braiam

@Braiam 컴파일러는 헤더 파일을 포함한다고해서 마술처럼 찾지 않습니다. 첫째, 파일이 시스템에 설치되어 있어야한다는 것이 분명합니다 (일반적으로 헤더 파일은 *-devLinux 배포판에 패키지 와 함께 제공됨). 컴파일러는 파일을 다운로드하지 않습니다. 둘째, 해당 헤더 파일은 컴파일러가 검색 할 표준 위치 (예 /usr/include:)에 있거나 해당 위치를 -I명령 줄 (for gcc또는 g++) 에 지정해야합니다 . 또한 일반적으로 연결 단계에 대한 런타임 라이브러리가 필요합니다 (헤더 전용 라이브러리 제외).
Malte Skoruppa

@ MalteSkoruppa는 잘 사용하지만 무엇을 사용해야합니까? 헤더에 넣지 마십시오.
Braiam

@Braiam Err ... 무엇을 묻고 있습니까? OP의 질문은 이것입니다. 우분투 에서 graphic.h라이브러리 를 사용하려면 어떻게해야합니까? 완벽합니다. 적절한 답변은 필요한 패키지와 패키지 설치 방법 (기존 답변과 같이) 및 컴파일시 명령 줄에 필요한 매개 변수를 설명합니다.
Malte Skoruppa

@MalteSkoruppa 당신은 몸을 읽고 있습니까?
Braiam

답변:


31

Ubuntu를 사용하여 그래픽 프로그래밍을 수행하는 데 사용할 수있는 몇 가지 옵션이 있습니다.

SDL 사용

graphics.hUbuntu 플랫폼 에서 사용 하려면 컴파일하고 설치해야 libgraph합니다. SDL을 사용하여 Linux에서 turbo c graphics API를 구현 한 것입니다.

강력하고 생산 품질 응용 프로그램에는 적합하지 않지만 학습 목적으로 간단하고 사용하기 쉽습니다.

여기 에서 다운로드 할 수 있습니다 .

  1. 먼저 기본 저장소에서 일부 필수 패키지를 사용할 수 없기 때문에 Universe 저장소를 추가하십시오 .

    sudo add-apt-repository universe
    sudo apt-get update
  2. 두 번째 설치 빌드 필수 및 일부 추가 패키지 :

    • 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 데모 -lglut -lGL

  • 사용하여 실행

    ./데모

데모 2의 출력


1
나는 SDL을 사용하고,하지만 난 인스톨 한후에 libgraph도 말했듯이 모든 물건을했지만 프로그램 실행 후, 에러 [XCB] 알 수없는 일련 번호 처리하는 동안 큐 갑자기 중지하고 끝
Luzan Baral

어떤 버전의 Ubuntu를 사용하고 있습니까?
g_p

우분투 14.04를 사용하고
Luzan Baral에게

@LuzanBaral, GTK에 문제가있는 것 같지만 여전히 프로그램을 실행할 수 있습니다.
g_p

1
SDL을 사용하여 libgraph를 설치하는 동안 발생하는 오류는 askubuntu.com/a/995265/719469askubuntu.com/a/717262/719469를 참조하십시오 (개인 경험으로 말하면 많은 시간을 절약 할 수 있습니다 : P)
Kewal Shah

2

우분투 또는 다른 리눅스 배포판에서 graphics.h를 사용하려면 libxbgi를 선호합니다. windows의 graphics.h에서 기대하는 거의 모든 것을 할 수 있습니다. http://libxbgi.sourceforge.net/ 에서 다운로드 할 수 있습니다.

그렇지 않으면 고급 그래픽을 원한다면 SDL (주로 비디오 게임 프로그래밍)과 OpenGL (3D 그래픽)이 있습니다. 두 가지를 혼합하여 사용할 수도 있습니다. 한 가지 예는 게임 briquolo입니다 (맞춤법이 틀릴 수 있습니다).

행복한 그래픽 프로그래밍 !!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.