【问题标题】:freeglut (something): failed to open display ''freeglut(东西):无法打开显示''
【发布时间】:2017-11-03 11:26:48
【问题描述】:

我在 Linux (Ubuntu) 下编译了 C++ 代码,只要将显示器连接到我的 PC,一切都很好。

我的代码显示了一些图形,然后保存了它们的屏幕截图。运行时图形对我来说并不重要,但屏幕截图。

但是如果我远程运行代码,我会遇到以下运行时错误:

freeglut (something): 无法打开显示''

如果我转发 x (ssh -v -X) 一切都会找到。但是如果我不这样做呢?!

如何绕过它?我不在乎是否显示任何内容。 是否可以在远程计算机上定义一个临时虚拟屏幕或以任何其他方式解决此问题?我只需要截图文件。

【问题讨论】:

  • 我对此并不完全确定,但我相信您只想创建 GL 上下文而不创建窗口。首先不要定义读/写参数,创建一些FBO,然后将这些FBO设置为读/写缓冲区。这样,上下文仍然具有默认缓冲区,但不需要它们的窗口。查看this link
  • 据我所知,没有窗口是不可能创建 GL 上下文的。在我从事的所有项目中,总是需要有一个窗口(可以隐藏)来创建 GL 上下文。

标签: c++ linux freeglut


【解决方案1】:

我建议你尝试将 XVFD 作为远程机器上的 X 服务器

引用这个答案:Does using Xvfb to run OpenGL effects version?

Xvfb 是一个 X 服务器,其全部目的是在没有专用图形硬件的情况下提供 X11 服务

这允许您在不使用 GPU 的情况下同时拥有 GL 上下文和窗口

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多