开发环境:
UBuntu9.10 Desktop x86,NetBeans6.8,OpenGL2.1
安装开发需要的库
OpenGL网站上有这么一句话(http://www.opengl.org/wiki/Getting_started#Linux):
Linux comes with Mesa libraries, which implements the OpenGL API as a software rasterizer.
在Mesa网站上,目前最新的版本是7.7,支持OpenGL2.1,但是受限制于具体驱动程序,并不能保证完全支持所有的API.
可以下载源代码编译安装,不过先从简单的开始,在UBuntu上面安装已经编译好的Mesa库和开发文件。
首先确保编译器等库已经被安装:
sudo apt-get install build-essential
执行下面的命令,将Mesa7.6.0安装到系统中。
sudo apt-get install libgl1-mesa-dev
下面安装两个增强库:
sudo apt-get install libglu1-mesa-dev
这个库是对OpenGL的增强
sudo apt-get install libglut-dev
这个库是对OpenGL窗口的增强和上面那个增强库的增强
现在编写代码:(抄来的,参考http://wiki.ubuntu-tw.org/index.php?title=Howto_Install_OpenGL_Development_Environment)
#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();
}
在NetBeans工程中设置link所需要的库,可以参考下图:
继续选中libGLU.so和libglut.so文件。
然后编译链接通过,
/usr/bin/make -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-conf
make[1]: 正在进入目录 `/home/chenshu/svnclient/MyCodes/OpenGL1'
/usr/bin/make -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/opengl1
make[2]: 正在进入目录 `/home/chenshu/svnclient/MyCodes/OpenGL1'
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/main.o.d
g++ -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.cpp
mkdir -p dist/Debug/GNU-Linux-x86
g++ -o dist/Debug/GNU-Linux-x86/opengl1 build/Debug/GNU-Linux-x86/main.o -lGL -lGLU -lglut
make[2]:正在离开目录 `/home/chenshu/svnclient/MyCodes/OpenGL1'
make[1]:正在离开目录 `/home/chenshu/svnclient/MyCodes/OpenGL1'
BUILD SUCCESSFUL (total time: 804ms)
运行程序:
今天就到这里。明天会继续探索这些API的功能。
分享到:
相关推荐
文章附带源代码,NetBeans6.8工程,UBuntu系统
摄像头360度旋转示例 开发平台,UBuntu,NetBeans6.8
ubuntu上用Qt5.3开发OpenGL上的经典茶壶teapot 。是学习Qt开发的OpenGL程序的参考。
操作说明: [w][s][a][d]键:控制最中间的方块移动。...程序在Windows使用minGW编译。我的开发环境是: Windows:Windows8+QtCreator2.6+QtSDK4.8.4+minGW4.4.1。 Linux:Ubuntu11.10+QtCreator2.4+QtSDK4.8.1+gcc4.4
该项目的开发仅是为了概念验证:使用OpenGL并用swift编写的简单应用程序-可以在Ubuntu(Linux),macOS,iOS和Android上编译和运行。 将来也将在某些X平台上使用。 苹果系统 终奌站: 打开终端窗口 克隆存储库 转到...
下面我们就来亲身体验一下Android程序的开发之旅。 先介绍一下开发环境,下面是对系统及相关软件的版本要求: 操作系统: Windows XP or Vista Mac OS X 10.4.8 or later (x86 only) Linux (tested on ...
一个小型的MIDI可视化工具,用C ++ / OpenGL编写。 “发行”选项卡中提供了Windows,macOS和Ubuntu(实验性)的二进制文件。 如果遇到任何问题,请参阅故障排除部分。 MIDI可视化工具小型MIDI可视化工具,用C ++ / ...
sgl是实用程序功能的集合,用于为使用C ++Linux和Windows开发OpenGL和Vulkan图形应用程序。 用法 学习使用此库的最推荐方法是阅读和理解目录“ samples”中的示例代码(仍在进行中)。 如果您为此项目构建了...
程序可以采用 JAVA 开发,但是因为它的虚拟机 (Virtual Machine) Dalvik ,是将 JAVA 的 bytecode 转成 自 己的格式,回避掉需要付给 SUN 有关 JAVA 的授权费用。 对手机制造者的影响 � Android 是款开源的移动计算...
MadStyle TV-非游戏应用程序的开源引擎 ... 假定安装了标准开发工具的现代Linux发行版是在Ubuntu 16.04上开发的。 需要GCC版本5或更高版本。 提供了Visual Studio 2013的项目生成文件,因为该版本作为社区版免费提供
Visual Studio Code中的OpenGL游戏引擎开发此存储库包含使用SDL和Visual Studio Code编写的OpenGL Game Engine教程的源代码。 针对那些不熟悉图形编程,并且具有面向对象的开发/ C ++知识的人员,我尽了最大的努力来...
用c++/qt写的项目,可供自己学习,项目都经测试过,真实可靠,请放心使用。Qt支持 Windows、Linux/Unix、Mac OS X、Android、BlackBerry、QNX等多种平台,并为这些不同的平台提供了统一的开发环境。 面向对象 C++...
用c++/qt写的项目,可供自己学习,项目都经测试过,真实可靠,请放心使用。Qt支持 Windows、Linux/Unix、Mac OS X、Android、BlackBerry、QNX等多种平台,并为这些不同的平台提供了统一的开发环境。 面向对象 C++...
一个OpenGL应用程序,它使用几种不同的算法递增地读取曲线结构的点云文件,并估计点位置处的法向矢量忽略法向矢量估计功能,该程序可用于查看3D探测项目()产生的点云。 用于对曲线结构点云上的法向矢量估计进行...
genymotion安卓模拟器其实不是普通的模拟器,严格来说,genymotion是虚拟机,被网传定义为模拟器,genymotion虚拟机希望能够给你带来最好的Android模拟体验,目前具备以下特性(更多特性正在开发中,敬请期待): ...
7.2.1 修改示例应用程序使之能够使用Java线程 165 7.2.2 执行Java Threads示例 166 7.2.3 原生代码使用Java线程的优缺点 167 7.3 POSIX线程 168 7.3.1 在原生代码中使用POSIX线程 168 7.3.2 用pthread_create...
无论使用哪种操作系统,都需要以下程序包和程序: 这对于编译是必需的。 C ++编译器(包含在Ubuntu中) OpenGL(通常包含在Ubuntu中) Armadillo C ++库,用于C ++中的矩阵计算 为Ubuntu安装所需库的命令: $ sudo ...
整个游戏都是用C89编写的,仅依靠SDL框架来创建窗口和处理IO,以及依靠OpenGL和Vulkan进行渲染。 由于核心系统尚未移植到Windows和macOS,因此该游戏极有可能只能在Linux上运行。 一个港口将在不久的将来到来。 注意...
Code::Blocks由纯粹的C++语言开发完成,它使用了蓍名的图形界面库wxWidgets(2.6.2 unicode)版。对于追求完美的C++程序员,再也不必忍受Eclipse的缓慢,再也不必忍受VS.NET的庞大和高昂的价格。 虽然Code::Blocks...
一款面向科研/开发工程的快捷数据可视化和GUI工具PyQtGraph 用于 PyQt/PySide/PyQt5/PySide2 的纯 Python 图形库 版权所有 2020 Luke Campagnola,北卡罗来纳大学教堂山分校 http://www.pyqtgraph.org PyQtGraph ...