You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11下MobaXTerm运行WSL2中SFML程序报错求助

WSL2 + MobaXTerm 运行SFML代码报错的解决办法

针对你遇到的Setting vertical sync not supported和X连接断开问题,可按以下步骤尝试解决:

1. 禁用垂直同步

MobaXTerm的X服务器大多不支持垂直同步,直接在代码里关闭该特性即可:
修改main函数中创建窗口后的代码,添加禁用垂直同步的语句:

sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
window.setVerticalSyncEnabled(false); // 新增这行,关闭垂直同步
sf::CircleShape shape(100.f);

2. 调整DISPLAY环境变量配置

替换.bashrc里的自动获取IP配置,改用更稳定的localhost地址:

# 删掉原来的DISPLAY配置,替换成下面两行
export DISPLAY=localhost:0.0
export LIBGL_ALWAYS_INDIRECT=0

修改后执行source ~/.bashrc让配置立即生效,或者重启MobaXTerm终端。

同时确认MobaXTerm的X服务器处于激活状态:打开MobaXTerm后,顶部状态栏的X图标应为彩色(灰色代表未开启)。

3. 强制SFML使用X11后端编译

编译时添加编译宏,指定SFML使用X11后端,避免兼容性问题:

g++ main.cpp -o sfml-app -DSFML_BACKEND_X11 -L<sfml-install-path>/lib -lsfml-graphics -lsfml-window -lsfml-system

注意:这里直接编译.cpp文件,确保编译时就应用X11后端的配置。

4. 更新组件版本

  • 把MobaXTerm升级到最新版本,旧版X服务器可能存在WSL2兼容性Bug。
  • 在Windows命令提示符/PowerShell中执行wsl --update,更新WSL2的内核和组件。

内容的提问来源于stack exchange,提问作者AlwaysJona

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 04:30:18