在 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的主要内容,如果未能解决你的问题,请参考以下文章

为啥堆栈段可以在 Raspberry Pi 上执行?

.NET Core 准备好在 Raspberry PI 3 上运行了吗?

在(Raspberry Pi)树莓派上安装NodeJS

Raspberry-jessie Docker 安装记

Raspberry-jessie Docker 安装记

在Raspberry Pi上使用python3进行Bash