如何通过脚本在Steam启动Linux端Bevy游戏?启动异常排查
Linux端Steam启动游戏退出问题排查与解决方案
脚本问题分析与修复
你当前的脚本在终端正常但Steam启动失败,核心原因大概率是Steam启动时的工作目录并非游戏安装目录,导致./glow和LD_LIBRARY_PATH="."无法正确定位文件。修改脚本为以下内容即可解决:
#!/bin/sh # 获取脚本所在的绝对目录 SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) # 设置动态库路径为游戏目录 export LD_LIBRARY_PATH="$SCRIPT_DIR" # 启动游戏 "$SCRIPT_DIR/glow" "$@"
用dirname "$0"配合pwd获取脚本的绝对路径,能确保无论Steam以哪个目录作为工作目录,都能正确找到游戏二进制文件和libsteam_api.so。
无需脚本的替代方案
1. 静态链接Steam API
如果使用静态版本的libsteam_api.a编译游戏,可彻底摆脱动态库依赖:
- 确保你的
bevy_steamworks配置支持静态链接,在Cargo.toml中启用对应特性(如static-link,具体参考插件文档); - 编译时指定链接静态库,避免生成依赖
libsteam_api.so的二进制文件。
这种方案最可靠,无需额外设置环境变量,Steam直接启动游戏二进制即可。
2. 直接设置Steam启动选项
无需脚本,直接在Steam的游戏属性中设置启动选项:
LD_LIBRARY_PATH="$PWD" %command%
$PWD会指向游戏的安装目录,Steam启动时会自动识别该路径,无需手动指定绝对地址。
额外排查建议
- 查看启动日志:在Steam启动选项中添加
> game.log 2>&1,启动后查看生成的game.log文件,里面会包含具体的错误信息(比如找不到动态库、权限问题等); - 检查文件权限:确保
glow二进制文件有可执行权限(chmod +x glow),libsteam_api.so有读取权限,打包上传到Steam时不要丢失这些权限。
内容的提问来源于stack exchange,提问作者Frank Weslien
相关产品推荐
相关产品推荐

