Linux环境raylib库运行报错:Failed to initialize Graphic Device
解决raylib运行时"X11: Failed to open display :0"报错
1. 检查并设置DISPLAY环境变量
- 先查看当前DISPLAY变量值:
echo $DISPLAY - 如果输出不是
:0,手动设置变量后重新运行程序:export DISPLAY=:0 ./a.out - 若通过SSH远程连接服务器,需开启X11转发:
- 连接时添加
-X参数:ssh -X 你的用户名@服务器地址 - 确保服务器端SSH配置已启用X11转发:编辑
/etc/ssh/sshd_config,将X11Forwarding设为yes,然后重启sshd服务:sudo systemctl restart sshd
- 连接时添加
2. 确认当前用户拥有X11显示访问权限
- 临时允许当前用户访问X11显示(仅测试用,不建议长期保持):
xhost +local:$USER - 检查
~/.Xauthority文件权限,确保归属当前用户:ls -l ~/.Xauthority - 若权限错误,修改归属:
chown $USER:$USER ~/.Xauthority
3. 补全X11及GLFW相关依赖
- Debian/Ubuntu系列系统:
sudo apt update && sudo apt install xorg-dev libglfw3-dev - RHEL/CentOS/Fedora系列系统:
sudo dnf install xorg-x11-server-devel glfw-devel
4. 无桌面环境下使用raylib无头模式
如果运行机器没有桌面环境,可修改代码启用无头模式:
// 方法1:隐藏窗口 InitWindow(800, 600, "Test", FLAG_WINDOW_HIDDEN); // 方法2:完全无头(无窗口创建) SetConfigFlags(FLAG_HEADLESS); InitWindow(0, 0, "Headless Test");
编译命令保持原命令即可。
内容的提问来源于stack exchange,提问作者ShacoPoggers
相关产品推荐
相关产品推荐

