天天看点

[OpenGL] CentOS7 安装 mesa

CentOS 7安装 mesa
===============

How to install mesa on centos 7.
--------------------------------

 **1.  下载原文件**
 下载连接:
  [mesa-11.1.3.tar.gz](https://mesa.freedesktop.org/archive/older-versions/11.x/11.1.3/mesa-11.1.3.tar.gz)
  [freeglut-3.0.0.tar.gz](https://excellmedia.dl.sourceforge.net/project/freeglut/freeglut/3.0.0/freeglut-3.0.0.tar.gz)
  [libdrm-2.4.66.tar.bz2](https://dri.freedesktop.org/libdrm/libdrm-2.4.66.tar.bz2)
  [llvm-3.8.0.src.tar.gz](http://releases.llvm.org/3.8.0/llvm-3.8.0.src.tar.xz)
  [cfe-3.8.0.src.tar.xz](http://releases.llvm.org/3.8.0/cfe-3.8.0.src.tar.xz)
  [compiler-rt-3.8.0.src.xz](http://releases.llvm.org/3.8.0/compiler-rt-3.8.0.src.tar.xz)
  [test-suilt-3.8.0.src.tar.xz](http://releases.llvm.org/3.8.0/test-suite-3.8.0.src.tar.xz)
  [mesa-demos-8.3.0.tar.bz2](https://mesa.freedesktop.org/archive/demos/8.3.0/mesa-demos-8.3.0.tar.bz2)
  [glu-9.0.0.tar.bz2](https://mesa.freedesktop.org/archive/glu/glu-9.0.0.tar.bz2)
  
 **2.  安装依赖库**

```
    $ sudo yum install xorg-x11-proto-devel
    $ sudo yum install libxcb-devel
    $ sudo yum install libpciaccess-devel
    $ sudo yum install libdrm-devel
    $ sudo yum install libxshmfence-devel
    $ sudo yum install libX11-devel
    $ sudo yum install libXext-devel
    $ sudo yum install libXdamage-devel
    $ sudo yum install libXfixes-devel
    $ sudo yum install libxcb-devel
    $ sudo yum install libudev-devel
    $ sudo yum install expat-devel
```

 **3.  安装llvm**

```
    $ tar xvf llvm-3.8.0.src.tar.xz
    $ tar xvf cfe-3.8.0.src.tar.xz
    $ tar xvf compiler-rt-3.8.0.src.tar.xz
    $ tar xvf test-suite-3.8.0.src.tar.xz
    $ cp cfe-3.8.0 llvm-3.8.0/tools/clang -r
    $ cp compiler-rt-3.8.0 llvm-3.8.0/projects/compiler-rt -r
    $ cp test-suite-3.8.0 llvm-3.8.0/projects/test-suite -r
    $ cd llvm-3.8.0
    $ mkdir build
    $ cd build
    $ ../configure --enable-shared --enable-optimized
    $ make -j8
    $ sudo make install
```
 **4.  安装mesa**

```
    // install mesa
    $ cd mesa-11.1.3/
    $ ./configure
    $ make -j8
    $ sudo make install
    
    // install glu
    $ cd glu-9.0.0
    $ ./configure
    $ make -j8
    $ sudo make install 

    // install freeglut
    $ cd freeglut-3.0.0
    $ sudo yum install libXi-devel
    $ cmake ./CMakeLists.txt
    $ make -j8
    $ sudo make install
```

 **5.  连接库**

```
    // copy the old lib back.
    # cd /usr/lib64
    # mkdir glbak
    # cp libGL* glbak
    # rm libGL.so.1
    # ln -s /usr/local/
    # ln -s /usr/local/lib/libGL.so.1.2.0 ./libGL.so
    # ln -s /usr/local/lib/libGL.so.1.2.0 ./libGL.so.1
    # rm libGLU.so.1
    # ln -s /usr/local/lib/libGLU.so.1.3.1 ./libGLU.so.1
    # ln -s /usr/local/lib64/libglut.so.3.10.0 ./libglut.so
    # cp dri/ dri_bak -r
    # rm dri -rf
    # ln -s /usr/local/lib/dri/ .
    # reboot
```
 **5.  测试**
 OpenGL 测试代码:
 

```
// file test.c
#include <GL/glut.h>
void init();
void display();
int main(int argc, char* argv[])
{
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
        glutInitWindowPosition(0, 0);
        glutInitWindowSize(300, 300);
        glutCreateWindow("OpenGL 3D View");
        init(); 
        glutDisplayFunc(display);
        glutMainLoop();
        return 0;
}
void init()
{
        glClearColor(0.0, 0.0, 0.0, 0.0);
        glMatrixMode(GL_PROJECTION);
        glOrtho(-5, 5, -5, 5, 5, 15);
        glMatrixMode(GL_MODELVIEW);
        gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);
}
void display()
{
        glClear(GL_COLOR_BUFFER_BIT);
        glColor3f(1.0, 0, 0);
        glutWireTeapot(3);
        glFlush();
} 
```
代码显示结果如下:

        
[OpenGL] CentOS7 安装 mesa

继续阅读