منشور

كيفية تنصيب OpenGL على أبونتو لينكس

إليك كيفية تنصيب OpenGL والذي يستخدم لمعالجة الرسوميات وبالتالي يلزم لبرامج التصميم والجرافيك والتصميم ثلاثي الأبعاد وتصميم الألعاب مثل برنامج Godot وغيره.

هذا الشرح موجه لنظام أبونتو ولكنه يصلح أيضًا للاستخدام على توزيعات لينكس الأخرى.

قم بتنصيب المكتبات اللازمة من خلال الأمر:

1
    $sudo apt-get install cmake libx11-dev xorg-dev libglu1-mesa-dev freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev libglfw3-dev libglfw3

وانتهى!

يمكنك اختبار عمل OpenGL على جهازك من خلال حفظ الكود التالي لديك بملف اسمه “text.cpp”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <GL/glew.h>
#include <GL/glu.h>
#include <GLFW/glfw3.h>
#include <iostream>

static void error_callback(int error, const char* description)
{
    fputs(description, stderr);
}

static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
{
    if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
    glfwSetWindowShouldClose(window, GL_TRUE);
}

int main(void)
{
    GLFWwindow* window;
    static const GLfloat red[] = {1.0f, 0.0f, 0.0f, 1.0f};

    glfwSetErrorCallback(error_callback);

    if (!glfwInit()) {
        exit(EXIT_FAILURE);
    }

    window = glfwCreateWindow(640, 480, "Simple example", NULL, NULL);

    if (!window)
    {
        glfwTerminate();
        exit(EXIT_FAILURE);
    }

    glfwMakeContextCurrent(window);
    glfwSetKeyCallback(window, key_callback);

    glewExperimental=GL_TRUE;
    GLenum err=glewInit();
    if(err!=GLEW_OK)
    {
        //Problem: glewInit failed, something is seriously wrong.
        std::cout<<"glewInit failed, aborting."<<std::endl;
    }

    while (!glfwWindowShouldClose(window))
    {
        glClearBufferfv(GL_COLOR, 0, red);

        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    glfwDestroyWindow(window);
    glfwTerminate();

    exit(EXIT_SUCCESS);
}

ثم قم بتفسيره (compile) بالأمر التالي:

1
    g++ test.cpp -o test -std=c++11 -Wall -lGL -lGLU -lglut -lGLEW -lglfw -lX11 -lXxf86vm -lXrandr -lpthread -lXi -ldl -lXinerama -lXcursor

ثم تشغيله:

1
    ./test

إذا ظهرت شاشة حمراء فيعني أن كل شيئ على مايرام.

المرجع:

هذا المنشور تحت ترخيص CC BY 4.0 بواسطة المؤلف.