मैं उबंटू में ग्राफिक्स का उपयोग कैसे करूं?


19

क्या कोई लिनक्स आधारित संकलक है जो graphics.hपुस्तकालय का समर्थन करता है? मैं ग्राफिक कार्यक्रमों को लागू करना चाहता हूं, इसलिए कृपया मुझे बताएं कि क्या ऐसा कोई सॉफ्टवेयर है।

यदि नहीं तो मैं इसका उपयोग कैसे कर सकता हूं?


वास्तव में आपको क्या जानना चाहिए? यदि आप सही .. umm ... श्रोताओं को आपके स्रोत फ़ाइल में डालते हैं तो कंपाइलरों को सभी हेडर खोजने चाहिए।
ब्राह्मण

@Braiam संकलक जादुई रूप से एक हेडर फ़ाइल नहीं ढूंढेगा क्योंकि आप इसे शामिल करते हैं। सबसे पहले, स्पष्ट रूप से उस फ़ाइल को आपको सिस्टम पर स्थापित करने की आवश्यकता है (आमतौर पर हेडर फाइलें *-devलिनक्स डिस्ट्रोस पर पैकेज के साथ आती हैं ) - कंपाइलर इसे आपके लिए डाउनलोड नहीं करेगा। दूसरे, उस हेडर फ़ाइल को या तो कुछ मानक स्थान पर होना चाहिए, जहां एक कंपाइलर उसकी तलाश करेगा (जैसे कि /usr/include), या फिर उस स्थान को -Iकमांड लाइन ( gccया g++) के साथ निर्दिष्ट करना होगा । इसके अतिरिक्त आपको आमतौर पर लिंकिंग स्टेज (हेडर-ओनली
लिबास

@MalteSkoruppa अच्छी तरह से, लेकिन आपको इसका उपयोग करने की क्या आवश्यकता है? इसे अपने हेडर में रखो, नहीं?
ब्रायन

@Braiam Err ... तुम क्या पूछ रहे हो? देखिए, ओपी का सवाल बस यही है: मुझे graphic.hउबंटू पर पुस्तकालय का उपयोग करने में सक्षम होने के लिए क्या करने की आवश्यकता है ? यह पूरी तरह से स्पष्ट है। एक एप्रीप्टिएट उत्तर बताएगा कि पैकेजों की क्या आवश्यकता है और उन्हें कैसे स्थापित किया जाए (जैसा कि मौजूदा उत्तर करता है), और संभवतः संकलन समय पर कमांड लाइन पर क्या पैरामीटर आवश्यक हैं।
माल्टे स्कोरुप्पा

@MalteSkoruppa क्या आप शरीर को पढ़ रहे हैं?
Braiam

जवाबों:


31

उबंटू का उपयोग करके ग्राफिक्स प्रोग्रामिंग करने के लिए कई विकल्प उपलब्ध हैं।

एसडीएल का उपयोग करना

यदि आप graphics.hउबंटू प्लेटफॉर्म पर उपयोग करना चाहते हैं तो आपको संकलन और इंस्टॉल करने की आवश्यकता है libgraph। यह एसडीएल का उपयोग करके लिनक्स पर टर्बो सी ग्राफिक्स एपीआई का कार्यान्वयन है।

यह उत्पादन की गुणवत्ता के आवेदन के लिए बहुत शक्तिशाली और उपयुक्त नहीं है, लेकिन यह सीखने के उद्देश्य के लिए सरल और आसान है।

आप इसे यहाँ से डाउनलोड कर सकते हैं

  1. पहले यूनिवर्स रिपॉजिटरी जोड़ें (चूंकि कुछ आवश्यक पैकेज मुख्य रिपॉजिटरी में उपलब्ध नहीं हैं):

    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 के लिए : उबंटू से 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>अपने प्रोग्राम में उबंटू और निम्न लाइन पर उपयोग कर सकते हैं :

    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 के माध्यम से)

हालांकि ओपेन वील मूल रूप से 3 डी प्रोग्रामिंग के लिए बनाया गया है, 2 डी आकृतियों को ड्रॉ करना ओपेनग्ल को मूल रूपरेखा और परिचय देता है और ओपेनग्ल में ड्राइंग ऑब्जेक्ट्स को कैसे शुरू किया जाए, इस बारे में विचार देता है।

  • 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

  • इसका उपयोग करके चलाएं

    ./demo

डेमो 2 का आउटपुट


1
मैं SDL का उपयोग कर रहा हूं, लेकिन मैंने कहा कि सभी सामानों को कहा, libgraph को भी इंटैल किया, लेकिन प्रोग्राम चलाने के बाद, यह अचानक रुक जाता है और एक त्रुटि के साथ अचानक समाप्त हो जाता है [xcb] कतार को संसाधित करते समय अज्ञात अनुक्रम संख्या
लूजन बराल

उबंटू का कौन सा संस्करण आप उपयोग कर रहे हैं?
g_p

मैं ubuntu 14.04 का उपयोग कर रहा हूं
लूजान बराल

@LuzanBaral, यह GTK के साथ समस्या लगती है, लेकिन आप अभी भी प्रोग्राम को चला सकते हैं।
g_p

1
SDL का उपयोग करते समय libgraph को स्थापित करने में हुई त्रुटियों के लिए askubuntu.com/a/995265/719469 और askubuntu.com/a/717262/719469 का संदर्भ लें (व्यक्तिगत अनुभव से यह कहते हुए अपना बहुत समय बचाएंगे: P)
केवाल शाह

2

यदि आप ubuntu या किसी अन्य linux distro में graphics.h का उपयोग करना चाहते हैं, तो मुझे libxbgi पसंद है। यह लगभग सभी चीजें कर सकता है जो आप ग्राफिक्स के लिए उम्मीद करते हैं। विंडोज़ के लिए। आप इसे यहाँ से डाउनलोड कर सकते हैं: http://libxbgi.sourceforge.net/

अन्यथा यदि आप कुछ उच्च अंत ग्राफिक्स करना चाहते हैं तो आप एसडीएल के लिए हैं (जो कि ज्यादातर प्रोग्रामिंग वीडियो गेम के लिए है) और ओपनजीएल (जो 3 डी ग्राफिक्स के लिए है)। आप दोनों के मिश्रण का भी उपयोग कर सकते हैं। एक उदाहरण खेल ब्रिकेटोलो है (वर्तनी गलत हो सकती है)।

खुश रहने की प्रक्रिया !!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.