Processing math: 100%

Fedora和Ubuntu下安装OpenGL开发环境配置

简介: Fedora下OpenGl开发环境配置开发OpenGL工程需要3个库文件和对应的头文件:libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h这些库在linux系统中默认都有,使用locate命令验证都在标准库目录(/usr/lib)下:[root@localhost GL]# locate libglut.

Fedora下OpenGl开发环境配置

开发OpenGL工程需要3个库文件和对应的头文件:

libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h

这些库在linux系统中默认都有,使用locate命令验证都在标准库目录(/usr/lib)下:

[root@localhost GL]# locate libglut.so
/usr/lib/libglut.so.3
/usr/lib/libglut.so.3.9.0

[root@localhost GL]# locate libGLU.so
/usr/lib/libGLU.so
/usr/lib/libGLU.so.1
/usr/lib/libGLU.so.1.3.070700

[root@localhost GL]# locate libGL.so
/usr/lib/libGL.so
/usr/lib/libGL.so.1

/usr/lib/libGL.so.1.2
AI 代码解读

但是头文件是没有的,安装开发包之前使用locate验证无法找到相关文件。

安装开发包(需要3个开发包):

yum install mesa-libGL-devel mesa-libGLU-devel //这两个是opengl核心库

yum install freeglut-devel //OpenGL Utility ToolKit
AI 代码解读

安装完之后用rpm命令验证安装包和查询安装的文件以及安装在什么位置(以glut-devel为例):

[root@localhost etc]# rpm -qa | grep glut

freeglut-devel-2.6.0-1.fc12.i686

[root@localhost etc]# rpm -ql freeglut-devel
/usr/include/GL/freeglut.h
/usr/include/GL/freeglut_ext.h
/usr/include/GL/freeglut_std.h
/usr/include/GL/glut.h
/usr/lib/libglut.so
AI 代码解读

由上可见安装freeglut之后在/usr/include/GL/目录下添加了glut.h,在/usr/lib/下替换了libglut.so文件。

可以在/usr/include/GL下使用ls验证一下安装的头文件:

[root@localhost GL]# ls
freeglut_ext.h  freeglut_std.h  gl.h         glu.h         glut.h    glx.h     glx_mangle.h  glxproto.h   internal
freeglut.h      glext.h         gl_mangle.h  glu_mangle.h  glxext.h  glxint.h  glxmd.h       glxtokens.h
AI 代码解读

好了,相关库和头文件都一切就绪,我们可以来写一个最简单的例子程序:

#include <GL/glut.h>
void display(){
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_POLYGON);
    glVertex2f(-0.5,-0.5);
    glVertex2f(-0.5,0.5);
    glVertex2f(0.5,0.5);
    glVertex2f(0.5,-0.5);
    glEnd();
    glFlush();
}
int main(int argc,char *argv[]){
    glutInit(&argc,argv);
    glutCreateWindow("Simple");
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;

}
AI 代码解读

使用如下命令编译:

gcc simple.c -o app -lglut -lGL -lGLU -lm -lX11 -lm
AI 代码解读

运行./app出现一个画了白色矩形的窗口:

本文引用地址:http://blog.sciencenet.cn/blog-623402-546787.html 此文来自科学网霍振华博客,转载请注明出处。

===

Ubuntu下安装OpenGL配置

OpenGL 是一套由SGI公司发展出来的绘图函式库,它是一组 C 语言的函式,用于 2D 与 3D 图形应用程式的开发上。OpenGL 让程式开发人员不需要考虑到各种显示卡底层运作是否相同的问题,硬体由 OpenGL 核心去沟通,因此只要显示卡支援 OpenGL,那么程式就不需要重新再移植,而程式开发人员也不需要重新学习一组函式库来移植程式。

安装

首先不可或缺的就是编译器与基本的函式库,如果系统没有安装的话,依照下面的方式安装:

    $ sudo apt-get install build-essential
AI 代码解读

安装OpenGL Library

    $ sudo apt-get install libgl1-mesa-dev
AI 代码解读

安装OpenGL Utilities

    $ sudo apt-get install libglu1-mesa-dev
AI 代码解读
   OpenGL Utilities 是一组建构于 OpenGL Library 之上的工具组,提供许多很方便的函式,使 OpenGL 更强大且更容易使用。
AI 代码解读

安装OpenGL Utility Toolkit

    $ sudo apt-get install libglut-dev

       OpenGL Utility Toolkit 是建立在 OpenGL Utilities 上面的工具箱,除了强化了 OpenGL Utilities 的不足之外,也增加了 OpenGL 对于视窗介面支援。
       注意:在这一步的时候,可能会出现以下情况,shell提示:

    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    E: Unable to locate package libglut-dev
AI 代码解读

将上述sudoaptgetinstalllibglutdev sudo apt-get install freeglut3-dev即可。

测试

示例test.c源码:

    #include <GL/glut.h>

    void init(void)
    {
        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);

        return;
    }

    void display(void)
    {
        glClear(GL_COLOR_BUFFER_BIT);
        glColor3f(1.0, 0, 0);
        glutWireTeapot(3);
        glFlush();

        return;
    }

    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;
    }
AI 代码解读

编译程式时,执行以下指令:

    $ gcc -o test test.c -lGL -lGLU -lglut
AI 代码解读

执行:

    $ ./test
AI 代码解读

配置IDE,用cmake作为构建工具

其实opengl的程序的cmake写法很简单,因为在linux下,头文件已经自动放到系统include路径了,因此只需要在链接的时候加入链接库,和前面用gcc/g++编译的设定几乎一致,无非是把参数写在CMakeLists.txt中。比如用clion作为IDE,那么对应的CMakeLists.txt为:

cmake_minimum_required(VERSION 3.3)
project(hello)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)
add_executable(hello ${SOURCE_FILES})
target_link_libraries(${PROJECT_NAME} GL GLU glut)   #此行为新增
AI 代码解读

当然,如果你觉得写makefile很容易,那也可以去写的,关键点还是链接库要加入 GL GLU glut三个。

关于cmake的用法,可以参考10分钟搞定cmake。如果进一步想看看pkg-config是怎么玩的,可以参考pkg-config的用法,即在/usr/lib64/pkgconfig路径下查看对应的pc文件。

glew.h头文件

目前还没有用到glew.h头文件,前面fedora的安装中也没有相关的安装。安装方法:

sudo dnf install glew-devel
#会安装glew-devel 和 libGLEWmx两个rpm包
AI 代码解读

如果是ubuntu,看起来应该这样安装:

sudo apt-get install libglew-dev
AI 代码解读
目录
打赏
0
0
0
0
11
分享
相关文章
在Ubuntu上安装MEAN Stack的4个步骤
本指南介绍了在Ubuntu上安装MEAN Stack的四个步骤。MEAN Stack是一种基于JavaScript的开发堆栈,包含MongoDB、ExpressJS、AngularJS和NodeJS。步骤包括:1. 更新系统并准备安装MEAN;2. 从官方源安装最新版MongoDB;3. 安装NodeJS、Git和NPM;4. 克隆mean.io仓库并使用NPM安装剩余依赖项。通过这些步骤,您可以快速搭建基于MEAN Stack的应用开发环境。
40 2
在Ubuntu系统的Docker上安装MySQL的方法
以上的步骤就是在Ubuntu系统的Docker上安装MySQL的详细方法,希望对你有所帮助!
29 12
在Ubuntu 18.04服务器上配置双网口以接入互联网
总结一下,配置双网口在Ubuntu 18.04服务器就像一场冒险游戏,你小心翼翼地从查看网络布局开始,铺设新线路,最后得到了通往互联网的双重通道。祝你在网络世界的冒险旅程中更上一层楼!
29 11
|
7天前
|
Ubuntu中dpkg和apt命令:debian包安装详解
希望这让你对于Ubuntu中的dpkg和apt命令有了更为清晰的理解。下次你面对软件包安装的问题,就可以轻松应对,优雅地在你的Linux系统中游刃有余了。
83 10
|
16天前
|
在Ubuntu下安装Debian包:dpkg与apt命令的深度解构。
安装Debian包的知识,就像掌握了海上的航行技术,虽然起初会让人感到陌生甚至困惑,但只要你积累熟练,就能在Ubuntu的世界里畅游无阻。就像每一位成功的航海家,掌握好这些工具,去探索属于你的Ubuntu新世界吧!
74 21
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
62 16
|
21天前
|
Ubuntu gnome WhiteSur-gtk-theme类mac主题正确安装和卸载方式
通过这个过程,用户不仅可以定制自己的桌面外观,还可以学习到更多关于 Linux 系统管理的知识,从而更好地掌握系统配置和主题管理的技巧。
73 12
如何在Ubuntu 20.04系统中安装Docker
安装 Docker 引擎的步骤如下:首先更新系统包索引 (`sudo apt update`),安装必要依赖包 (`apt-transport-https` 等),添加 Docker 官方 GPG 密钥及 APT 仓库。接着再次更新包索引并安装 Docker 引擎及相关工具 (`docker-ce` 等)。最后启动 Docker 服务并设置开机自启,通过 `docker --version` 和运行测试容器 (`sudo docker run hello-world`) 验证安装是否成功。
242 0
|
11月前
|
如何在 Fedora 上安装 Rust?
如何在 Fedora 上安装 Rust?
214 0
如何在 Fedora 上安装 Rust?
ECS安装Fedora CoreOS操作系统版本34
ECS安装Fedora CoreOS操作系统版本34
629 0
ECS安装Fedora CoreOS操作系统版本34