Windows环境下用MSYS2/VS2022构建xmrig报错求助
Windows 11下构建XMRig的报错解决方案
方案一:MinGW构建时SIGPIPE未定义错误
问题原因
Windows系统本身不支持SIGPIPE信号,MinGW默认也不会定义该宏,导致编译触发错误。
解决步骤
- 打开
xmrig/src/base/io/Signals.cpp文件 - 在文件开头添加条件编译定义:
#ifdef _WIN32 #define SIGPIPE 13 #endif
或者直接对SIGPIPE相关代码做条件屏蔽:
#ifndef _WIN32 signal(SIGPIPE, SIG_IGN); #endif
- 回到build目录,重新执行
make -j$(nproc)命令
方案二:MSVC构建时LNK1181找不到libuv.so错误
问题原因
CMake错误引用了Git自带的Unix版本libuv库(.so文件),而非MSVC所需的.lib文件,同时存在依赖包版本不匹配问题。
解决步骤
- 下载对应VS2022版本的XMRig依赖包,解压到
c:\xmrig-deps\msvc2022\x64路径下 - 清理现有build目录,重新执行构建命令:
rmdir /s /q build mkdir build && cd build cmake .. -G "Visual Studio 17 2022" -A x64 -DXMRIG_DEPS=c:\xmrig-deps\msvc2022\x64 cmake --build . --config Release
- 检查系统环境变量,确保Git的
usr/lib64路径未被加入MSVC的优先搜索路径,避免CMake误选Unix版本库
自行构建libuv的问题修复
Windows下构建libuv需使用对应编译器的构建脚本,避免用Unix风格命令导致头文件缺失:
- 打开Visual Studio开发者命令提示符
- 进入libuv仓库目录,执行MSVC构建命令:
vcbuild.bat x64 release
- 构建完成后会生成
libuv.lib和uv.dll,将这些文件复制到XMRig依赖的对应路径下即可
内容的提问来源于stack exchange,提问作者Mixtuur
相关产品推荐
相关产品推荐

