【发布时间】:2021-01-14 02:48:58
【问题描述】:
(我知道有大量关于该主题的文档,但我要么缺乏经验,无法找到有效的文档,要么我遇到的问题与文档中的不同)
我正在尝试加载我在 Linux 上的 Mac 上编写的简单 SDL 包装器(Lubuntu 20.04,LXQt 0.14.1)。但是,当调用SDL_Init(SDL_INIT_VIDEO) 时,会生成以下SDL_Error() 返回语句:No available video device。我已经验证我的DISPLAY envvar 设置为:0(根据xterm 是正确的)并且我的SDL_VIDEODRIVER 未设置。
将我的 SDL_VIDEODRIVER 设置为 x11 会在初始化 x11 not available 时触发此替代错误。
我很困惑,我可以从中得出的唯一可能的结论是,我不知何故没有使用 x11,或者正在处理这个错误。
这是触发此错误的最小示例:
#include <SDL2/SDL.h>
int main() {
SDL_Init(SDL_INIT_VIDEO);
printf("%s\n", SDL_GetError());
}
非常感谢我能得到的任何帮助!
我正在为 SDL2 使用 libsdl2-dev apt 包
【问题讨论】:
-
SDL_Init 返回了什么?
-
@user253751 -1 在所有情况下
-
@TTG 您是从报告
DISPLAY的同一个 xterm 运行它,并且您可以启动例如glxinfo或其他xterm来自?或者是没有连接到您的 x11 服务器的单独外壳(例如 ctrl-alt-f1 或远程 ssh 会话上的虚拟 tty)?你确定你正在运行 x11 而不是例如韦兰 (ps aux|grep X)? -
@keltar 它是 X11,因为 xorg 进程正在运行。我正在从正确的终端运行,是的,并且在本地机器上(不是 ssh 或其他)
-
@TTG 这样您就可以从终端启动第二个
xterm,但不能从您的测试程序启动?这很奇怪。ldd ./your_program的输出是什么?是否有任何其他 SDL2 程序有效(例如 supertux2)?您能否自己构建 SDL 并尝试使用它,最好启用调试符号?