编译 leela-zero-next
官方教程:https://github.com/leela-zero/leela-zero/tree/next#compiling-autogtp-andor-leela-zero
如果遇到 git clone
速度极慢极不稳定的问题,可如下设置:
// 设置
git config --global http.proxy "socks5://xxx"
git config --global https.proxy "socks5://xxx"
// 取消
git config --global --unset http.proxy
git config --global --unset https.proxy
以下基于 Windows10 + VS2017 环境,实为踩坑笔记,面向纯粹的 C++ 门外汉,大神请退散。
工具
下载、安装并运行。
如无其他需求,可最小化组件安装:
VC++ 2017 tools
Windows 10 SDK
Google Test 测试适配器
源码
如果实在不便使用 git clone
,可以考虑用笨办法将源码下载后手动处理。
首先访问官方项目,点击 Clone and download
,点击 Download ZIP
;开始下载后,再点击源码列表中的文件夹 gtest @ xxx
,跳转到 gtest 项目,同上下载;开始下载后,回到官方项目,点击源码列表中的文件夹 src
,跳转后再点击源码列表中的文件夹 Eigen @ xxx
,跳转到 Eigen 项目,同上下载。
一切顺利的话,最后得到三个 zip 压缩包,全部解压。将 gtest 和 Eigen 解压后得到的那个文件夹内的一大堆内容全部复制到 leela-zero-next 的对应文件夹内。
至此准备就绪。
编译
打开 leela-zero-next
文件夹内的 msvc
文件夹,双击 leela-zero2017.sln
文件,进入 VS2017。
点击工具栏项目
,在下拉菜单中点击第一项重定解决方案目标
,在弹出对话框中点击确定
按钮。
默认状态下工具栏会显示解决方案配置为 Debug
,点击之并在下拉菜单中选择 Release
,最后点击绿色箭头的本地 Windows 调试器
。
编译速度由 CPU 等的性能决定,首次编译时间较长,等待一段时间即大功告成。
其他
写作本文时 leela-zero-next 依赖 opencl-nug 0.777.12版,而最新稳定版为 0.777.77,强迫症患者千万别乱升级,否则将导致找不到依赖而编译失败。
编译成功后二进制文件存储在 ./msvc/x64/ 目录下,可直接将该目录打包分享,仅 .exe .dll 为必需,其余文件分享时可以删除。
第一次运行时会进行初始化,完成后会产生 leelaz_opencl_tuning
文件,分享时千万不要附带该文件,否则可能导致接收者初始化特别漫长甚至无法运行。
因绝大多数 LZ 项目周边编译者和项目作者 GCP 一样都是用的 VS2017,所以可能仅分享了他们编译出的 .exe 文件,只要放到存有 .dll 的文件夹下即可兼容调用。