C SDL2无法正确查看X11/视频设备

C SDL2无法正确查看X11/视频设备,c,ubuntu,sdl,x11,C,Ubuntu,Sdl,X11,(我知道有大量关于这个主题的文档,但我要么太缺乏经验,找不到有效的文档,要么我有与文档中不同的问题) 我正在尝试加载一个简单的SDL包装器,它是我在Linux上的Mac上编写的(Lubuntu 20.04,LXQt 0.14.1)。但是,当调用SDL\u Init(SDL\u Init\u VIDEO)时,将生成以下SDL\u Error()返回语句:没有可用的视频设备。我已验证我的显示环境变量设置为:0(根据xterm,这是正确的),并且我的SDL\u视频驱动程序未设置 将mySDL\u VI

(我知道有大量关于这个主题的文档,但我要么太缺乏经验,找不到有效的文档,要么我有与文档中不同的问题)

我正在尝试加载一个简单的SDL包装器,它是我在Linux上的Mac上编写的(Lubuntu 20.04,LXQt 0.14.1)。但是,当调用
SDL\u Init(SDL\u Init\u VIDEO)
时,将生成以下
SDL\u Error()
返回语句:
没有可用的视频设备
。我已验证我的
显示
环境变量设置为
:0
(根据
xterm
,这是正确的),并且我的
SDL\u视频驱动程序
未设置

将my
SDL\u VIDEODRIVER
设置为x11会在init
x11不可用时触发此可选错误

我相当困惑,我能从中得出的唯一可能的结论是,不知何故,我没有使用x11,或者是在做错事

下面是触发此错误的一个最小示例:

#include <SDL2/SDL.h>

int main() {
    SDL_Init(SDL_INIT_VIDEO);
    printf("%s\n", SDL_GetError());
}
#包括
int main(){
SDL_Init(SDL_Init_视频);
printf(“%s\n”,SDL_GetError());
}
我真的很感激能得到的任何帮助


我正在使用SDL2的
libsdl2 dev
apt包结果表明,我在编译过程中忘记链接X11,导致SDL_视频无法初始化。这是通过使用-lX11解决的


谢谢你的帮助

SDL_Init返回了什么?@user253751-1cases@TTG您是否从报告
DISPLAY
的同一个xterm运行它,并且您可以从中启动,例如
glxinfo
或其他
xterm
?或者是没有连接到x11服务器的单独shell(例如ctrl-alt-f1或远程ssh会话上的虚拟tty)?您确定正在运行x11而不是wayland(
ps aux | grep X
)?@keltar xorg进程正在运行时,它是x11。我是从正确的终端运行的是,我在本地机器上(不是ssh或whatelse)@TTG,所以您可以从您的终端启动第二个
xterm
,但不启动您的测试程序?真奇怪。
ldd./u程序的输出是什么?其他SDL2程序是否有效(例如supertux2)?您是否可以自己构建SDL并尝试使用它,最好启用调试符号?