当前位置:  开发笔记 > 编程语言 > 正文

在Ubuntu中学习OpenGL

如何解决《在Ubuntu中学习OpenGL》经验,为你挑选了2个好方法。

我正在尝试通过Nehe指南学习OpenGL并提高我的C++技能,但所有的例子都是针对Windows而我目前正在使用Linux.我真的不知道如何在Linux下工作,并且已经为Linux移植的网站上的代码中有更多的代码没有解释(到目前为止,我唯一得到的代码)工作是SDL的例子:http://nehe.gamedev.net/data/lessons/linuxsdl/lesson01.tar.gz).还有其他任何资源在Linux下对OpenGL更具针对性吗?



1> Ned Bingham..:

首先要做的是安装OpenGL库.我建议:

freeglut3
freeglut3-dev
libglew1.5
libglew1.5-dev
libglu1-mesa
libglu1-mesa-dev
libgl1-mesa-glx
libgl1-mesa-dev

安装完成后,在编译时链接到它们:

g++ -lglut -lGL -lGLU -lGLEW example.cpp -o example

在example.cpp中,包含OpenGL库,如下所示:

#include 
#include 
#include 
#include 
#include 

然后,要启用更高级的opengl选项(如着色器),请将其放在glutCreateWindow调用之后:

GLenum err = glewInit();
if (GLEW_OK != err)
{
    fprintf(stderr, "Error %s\n", glewGetErrorString(err));
    exit(1);
}
fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));

if (GLEW_ARB_vertex_program)
    fprintf(stdout, "Status: ARB vertex programs available.\n");

if (glewGetExtension("GL_ARB_fragment_program"))
    fprintf(stdout, "Status: ARB fragment programs available.\n");

if (glewIsSupported("GL_VERSION_1_4  GL_ARB_point_sprite"))
    fprintf(stdout, "Status: ARB point sprites available.\n");

这应该启用所有OpenGL功能,如果没有,那么它应该告诉你问题.



2> Ben..:

我猜这是编译过程最初的最大区别.这是一个有用的Makefile,用于在Ubuntu上编译简单的OpenGL应用程序.

INCLUDE = -I/usr/X11R6/include/
LIBDIR  = -L/usr/X11R6/lib

FLAGS = -Wall
CC = g++                                  # change to gcc if using C
CFLAGS = $(FLAGS) $(INCLUDE)
LIBS =  -lglut -lGL -lGLU -lGLEW -lm

All: your_app                             # change your_app.

your_app: your_app.o
    $(CC) $(CFLAGS) -o $@ $(LIBDIR) $< $(LIBS) # The initial white space is a tab

将其保存到名为Makefile的文件中,该文件应位于同一目录中.通过从终端编写make或从Vim 编写make来编译.

祝好运


的文件中,该文件应位于同一目录中.通过
编写
从Vim 编写
编译.
推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有