xmr-stak windows下编译教程

这是Monero门罗币系列文章的第七篇。windows下编译xmr-stak挖矿软件。

在Windows下进行编译C++是有点繁琐的,并且软件的版本不一样,通用性不好,可能会导致编译失败,也有可能编译成功了,但是算力可能不如官方编译的。

编译前准备

Visual Studio Community 2017不能使用最新版,要使用15.4.5版,否则会出现错误:

c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt/host_config.h(135): fatal error C1189: #error: - - unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported! [C:\Users\min er3\xmr-stak-2.2.0\build\xmrstak_cuda_backend.vcxproj]

软件的安装

Visual Studio 2017 Community

在安装Visual Studio 2017 Community的时候,除了要使用15.4.5版本外,要选中左边的“使用C++的桌面开发”和右边的“用于桌面的 VC++ 2015.3 c140 工具集(x86,x64)”。

xmr-stak-vs-2017, xmr-stak windows下编译教程

CMake for Win64

我使用的是CMake 3.10.2版本,在安装的时候注意选择“Add CMake to the system PATH for all users”。

xmr-stak-cmake, xmr-stak windows下编译教程

CUDA和AMD APP SDK(可选)

在安装CUDA的时候,默认的自定义安装是全选的,如果你想最小化安装,请选择:

  • CUDA/Develpment
  • CUDA/Visual Studio Integration (ignore the warning during the install that VS2017 is not supported)
  • CUDA/Runtime
  • Driver components

xmr-stak-cuda, xmr-stak windows下编译教程

如果挖矿的时候只用CPU,那么可以不用安装CUDA和AMD APP SDK。AMD APP SDK安装还是蛮简单的,官网的下载器经常会下载出错,在准备工作中有一个可以直接下载的链接。

编译

上面的基础工作准备好之后,编译还是很快的。

解压xmr-stak-dep.zip,放到C盘根目录下,C:\xmr-stak-dep。解压xmr-stak的源代码,也放到C盘根目录下,C:\xmr-stak。

打开cmd对话框,cd c:\xmr-stak-dep,进入xmr-stak-dep目录,运行 tree . 看看这个目录结构和下面是否一致。

xmr-stak-tree, xmr-stak windows下编译教程

如果内容和图片一样,cd c:\xmr-stak 进入xmr-stak目录,然后一条一条运行下面的命令:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsMSBuildCmd.bat"

set CMAKE_PREFIX_PATH=C:\xmr-stak-dep\hwloc;C:\xmr-stak-dep\libmicrohttpd;C:\xmr-stak-dep\openssl

cd c:\xmr-stak

mkdir build

cd build

cmake -G "Visual Studio 15 2017 Win64" -T v141,host=x64 ..

cmake --build . --config Release --target install

cd bin\Release

copy C:\xmr-stak-dep\openssl\bin\* .

在编译的过程中,会出现“可能丢失数据”的警告,这个可以忽略,只要没有错误就行。

如果不需要编译显卡挖矿,把

cmake -G "Visual Studio 15 2017 Win64" -T v141,host=x64 ..

改成以下的:

cmake -G "Visual Studio 15 2017 Win64" -T v141,host=x64 .. -DCUDA_ENABLE=OFF -DOpenCL_ENABLE=OFF

-DCUDA_ENABLE=OFF表示不编译Nvidia显卡,-DOpenCL_ENABLE=OFF表示不编译AMD显卡。

相关链接: