StarCraftII SMAC 环境配置的debug日记
问题1
RuntimeError: Trying to run '/home/StarCraftII/Versions/Base69232/SC2_x64', but it isn't executable.
原因:该文件非可执行文件
解决办法:
chmod +x 你的文件目录/SC2_x64
问题2
raise ConnectError("Failed to connect to the SC2 websocket. Is it up?")
pysc2.lib.remote_controller.ConnectError: Failed to connect to the SC2 websocket. Is it up?
方案:
步骤 1:检查环境变量是否设置
echo $SC2PATH ls $SC2PATH/Versions/
确认里面有 Base69232
, Base75689
等版本目录
步骤 2:尝试手动运行 SC2
cd $SC2PATH/Versions/Base69232 ./SC2_x64 -listen 127.0.0.1 -port 12345
如果直接崩溃,说明是 glibc、X、权限问题。
问题3 以上指令后,我这边出现报错:
./SC2_x64: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./SC2_x64)`
说明:SC2_x64
可执行文件依赖 GLIBCXX_3.4.21
这个 C++ 标准库版本,但你系统当前的 libstdc++.so.6
太旧了,不支持这个接口版本。
方案一:临时指定新版 libstdc++.so.6
你可以在集群上加载 GCC 模块或自己安装新版 GCC,然后设置 LD_LIBRARY_PATH
指向正确的 libstdc++.so.6
。
步骤 1:看看系统有没有新版本 GCC
module avail gcc
如果看到类似:
gcc/7.3.0 gcc/9.3.0
加载它:
module load gcc/9.3.0
然后确认路径:
find $(dirname $(which gcc))/../lib64 -name "libstdc++.so.6"
设为环境变量:
export LD_LIBRARY_PATH=/刚才find的路径/lib64:$LD_LIBRARY_PATH
然后重试运行:
./SC2_x64 -listen 127.0.0.1 -port 12345