在 Raspberry Pi Jessie 上使用 OpenGL
Posted
技术标签:
【中文标题】在 Raspberry Pi Jessie 上使用 OpenGL【英文标题】:Using OpenGL on Raspberry Pi Jessie 【发布时间】:2016-05-24 06:52:57 【问题描述】:我正在尝试使用 C++ 在我的 Raspberry Pi Jessie 上制作一些简单的图形。我收到了我的instructions from this website.
我已经安装了以下库:
apt-get install g++ freeglut3-dev glew1.5-dev libmagick++-dev libassimp-dev libglfw-dev
那里似乎没有错误。我有以下代码:
#include <GL/freeglut.h>
static void RenderSceneCB()
glClear(GL_COLOR_BUFFER_BIT);
glutSwapBuffers();
static void InitializeGlutCallbacks()
glutDisplayFunc(RenderSceneCB);
int main(int argc, char** argv)
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
glutInitWindowSize(1024, 768);
glutInitWindowPosition(100, 100);
glutCreateWindow("Tutorial 01");
InitializeGlutCallbacks();
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glutMainLoop();
return 0;
并使用以下命令对其进行编译:
g++ window.cpp -lGL -lGLU -lglut -o window
经过几次尝试并修复了几个错误(我将 freeglut.h 的包含文件夹弄错了),我现在在尝试运行程序时得到了这个:
freeglut (compiled/window) failed to open display ''
这没有告诉我哪里出错了,如何解决它,甚至从哪里开始!我能做什么?
【问题讨论】:
【参考方案1】:您是否启动了 X 服务器并从 X 会话中启动程序?如果你没有,你必须这样做。您收到的错误表明程序尝试连接 X 会话,但在其环境中找不到。
【讨论】:
这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review @kerem:嗯,这实际上可能是答案:如果 OP 没有启动 X 会话,则可能会出现此错误。 @datenwolf 谢谢,你能修改上面的代码来做到这一点吗?或者命令行可以实现这一点? @Chud37:X server 一个单独的进程运行;它目前仍然是在 Linux 中启用图形输出的最先进技术(不过,Wayland 正在取得良好进展)。所以要么配置你的 R-Pi 来启动一个 X 显示管理器(xdm、lxdm 或类似的)。或者使用startx
启动一个X 会话,然后从那里启动您的OpenGL 程序。 *或以您的程序作为主要 X 客户端启动 X 会话:xinit $ABSOLUTE_PATH_TO_YOUR_PROGRAM
以上是关于在 Raspberry Pi Jessie 上使用 OpenGL的主要内容,如果未能解决你的问题,请参考以下文章