centos安装openGL并且运行首个test

本文详细记录了在CentOS系统中手动安装OpenGL及其依赖库的过程,包括遇到的问题及解决方法。通过从官网下载源码包,进行编译、make和install操作。在安装GLUT-3.7时遇到libglut.so缺失的问题,最终通过手动创建并链接静态库解决。文章附带了一个简单的OpenGL光照球体测试代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了顺便重温一下linux下各种包的安装以及解决依赖,我在安装opengl时没有用yum,也没有用rpm,直接在官网下载tar包,编译,make install,出现了各种问题,汇总如下:

 

glew-1.10.0.tgz

glu-9.0.0.tar.gz

glut-3.7.tar.gz

glw-8.0.0.tar.gz

MesaLib-10.0.0-rc1.tar.gz

expat-2.1.0.tar.gz

inputproto-2.3.tar.gz

libdrm-2.4.50.tar.gz

libICE-1.0.8.tar.gz

libpciaccess-0.13.1.tar.bz2

libSM-1.2.2.tar.gz

libtool-2.4.tar.gz

libX11-1.6.2.tar.gz

libxdamage_1.1.4.orig.tar.gz

libXext-1.3.2.tar.gz

libXfixes-5.0.1.tar.gz

libXi-1.7.2.tar.gz

libXmu-1.1.2.tar.gz

libXt-1.1.4.tar.gz

llvm-3.3.src.tar.gz

macros-master.tar.gz

xtrans-1.2.7.tar.bz2

以上是我遇到的依赖,还有最后一个安装glut-3.7.tar.gz遇到比较头疼的问题,make之后总是没有libglut.so, 我是安装linux目录下的README的方式去做的,可依然不行,最后就用笨方法手动创建的,链接的时候用的静态库没有用动态库,

以下是测试代码:

gcc  main.c -Bdynamic -lGL    -Bstatic  -L. -lglut  -Bstatic -L/usr/lib -lGLU   -lXmu

 

在动态库前加上-Bdynamic
在静态库前加上-Bstatic

 

 

/* light.c
   此程序利用GLUT绘制一个OpenGL窗口,并显示一个加以光照的球。
   */
/* 由于头文件glut.h中已经包含了头文件gl.h和glu.h,所以只需要include 此文件*/
#include <GL/gl.h>
#include <GL/glut.h>

/* 初始化材料属性、光源属性、光照模型,打开深度缓冲区 */
void init ( void )
{
        GLfloat mat_specular [ ] = { 1.0, 1.0, 1.0, 1.0 };
        GLfloat mat_shininess [ ] = { 50.0 };
        GLfloat light_position [ ] = { 1.0, 1.0, 1.0, 0.0 };

        glClearColor ( 0.0, 0.0, 0.0, 0.0 );
        glShadeModel ( GL_SMOOTH );

        glMaterialfv ( GL_FRONT, GL_SPECULAR, mat_specular);
        glMaterialfv ( GL_FRONT, GL_SHININESS, mat_shininess);
        glLightfv ( GL_LIGHT0, GL_POSITION, light_position);

        glEnable (GL_LIGHTING);
        glEnable (GL_LIGHT0);
        glEnable (GL_DEPTH_TEST);
}

/*调用GLUT函数,绘制一个球*/
void display ( void )
{
        glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glutSolidSphere (1.0, 40, 50);
        glFlush ();
}


/* 定义GLUT的reshape函数,w、h分别是当前窗口的宽和高*/
void reshape (int w, int h)
{
        glViewport (0, 0, (GLsizei) w, (GLsizei) h);
        glMatrixMode (GL_PROJECTION);
        glLoadIdentity ( );
        if (w <= h)
                glOrtho (-1.5, 1.5, -1.5 * ( GLfloat ) h / ( GLfloat ) w, 1.5 * ( GLfloat ) h / ( GLfloat ) w, -10.0, 10.0 );
        else
                glOrtho (-1.5 * ( GLfloat ) w / ( GLfloat ) h, 1.5 * ( GLfloat ) w / ( GLfloat ) h, -1.5, 1.5, -10.0, 10.0);
        glMatrixMode ( GL_MODELVIEW );
        glLoadIdentity ( ) ;
}


/* 定义对键盘的响应函数 */
void keybo

<think>好的,我现在需要帮助用户在CentOS虚拟环境中安装和配置OpenGL库。首先,我应该回忆一下CentOS系统下安装软件的一般方法,比如使用yum或者dnf包管理器。但用户提到是虚拟环境,可能需要确认是否是指Python虚拟环境,还是虚拟机中的CentOS系统?根据问题中的引用内容,用户之前遇到过关于CentOS8的源失效的问题,所以可能需要调整镜像源。 接下来,安装OpenGL库的话,通常需要安装Mesa库,这是开源的OpenGL实现。可能需要的软件包有mesa-libGL、mesa-libGLU等。同时,开发工具比如GCC、make等可能也需要安装,引用[1]中提到了安装gcc-c++和python3-devel,这可能也是必要的依赖。 另外,用户可能需要安装GLUT库,用于窗口管理,这对应的是freeglut-devel包。然后,安装完成后,如何验证安装是否成功呢?可能需要编写一个测试程序,用gcc编译,并运行看是否有窗口弹出。 但用户提到的是虚拟环境,如果是虚拟机中的CentOS,可能需要安装图形驱动,比如对于VMware,可能需要安装VMware Tools来增强图形支持。不过这可能超出OpenGL安装的范围,用户可能只需要库文件。 还需要注意CentOS的版本,如果是CentOS8,由于官方源已停止维护,需要更换镜像源,如阿里云源,如引用[2]和[3]中提到的步骤。用户可能需要先配置正确的yum源,才能顺利安装软件包。 总结步骤应该是:1. 配置正确的yum源;2. 安装必要的开发工具;3. 安装OpenGL相关库;4. 验证安装。同时,处理可能的依赖问题,比如32位库是否需要,但一般情况下64位系统安装64位库即可。 可能遇到的问题包括:依赖项缺失,源不可用,需要启用PowerTools仓库等。比如,mesa-dri-drivers可能在PowerTools中,需要启用该仓库。在CentOS8中,可以使用dnf config-manager --enable powertools来启用。 最后,确保用户有sudo权限,因为安装软件需要root权限,引用[2]中提到了配置sudoers文件的方法,用户可能已经设置好了。</think>### 在CentOS虚拟环境下安装配置OpenGL库的步骤 #### 1. **配置CentOS系统环境** - **更新yum源**(针对CentOS8生命周期结束问题): 1. 备份原有源文件: ```bash cd /etc/yum.repos.d sudo mv CentOS-Linux-BaseOS.repo CentOS-Linux-BaseOS.repo.bak ``` 2. 下载阿里云镜像源: ```bash sudo wget -O CentOS-Linux-BaseOS.repo http://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo ``` 3. 清理并重建缓存: ```bash sudo yum clean all sudo yum makecache ``` 参考:[^2][^3] - **启用PowerTools仓库**(部分依赖可能需要): ```bash sudo dnf config-manager --set-enabled powertools ``` #### 2. **安装开发工具和依赖** ```bash sudo yum install -y gcc-c++ make cmake mesa-libGL mesa-libGLU freeglut-devel ``` - `mesa-libGL` 和 `mesa-libGLU`:提供OpenGL核心库。 - `freeglut-devel`:支持窗口管理和用户交互。 - 开发工具(如gcc、make)参考[^1]。 #### 3. **验证安装** - 编写测试程序`test_opengl.c`: ```c #include <GL/glut.h> void display() { glClear(GL_COLOR_BUFFER_BIT); glFlush(); } int main(int argc, char** argv) { glutInit(&argc, argv); glutCreateWindow("OpenGL Test"); glutDisplayFunc(display); glutMainLoop(); return 0; } ``` - 编译并运行: ```bash gcc test_opengl.c -o test -lGL -lglut ./test ``` 若出现空白窗口,则安装成功。 #### 4. **额外配置(可选)** - **安装图形驱动**(如VMware虚拟机): 安装VMware Tools或VirtualBox增强工具以优化图形性能。 --- ### 常见问题解决 1. **报错“无法找到GL/glut.h”**: - 确保已安装`freeglut-devel`。 - 检查头文件路径是否包含在编译器中。 2. **依赖缺失**: - 使用`yum provides <文件名>`查找缺失文件对应的包。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值