您的位置:首页 > 运维架构 > Linux

[OpenGL] CentOS7 安装 mesa

2017-03-06 16:54 1396 查看

CentOS 7安装 mesa

How to install mesa on centos 7.

1. 下载原文件

下载连接:
mesa-11.1.3.tar.gz
freeglut-3.0.0.tar.gz
libdrm-2.4.66.tar.bz2
llvm-3.8.0.src.tar.gz
cfe-3.8.0.src.tar.xz
compiler-rt-3.8.0.src.xz
test-suilt-3.8.0.src.tar.xz
mesa-demos-8.3.0.tar.bz2
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();
}


代码显示结果如下:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: