写在前面的废话
在Linux下编译C/C++源码向来是件轻松的事:依赖清晰、工具链统一,作者也通常不会忘记写编译说明。于是我们可以随手构建那些没有提供二进制的开源项目。
然而一旦来到Windows,情况就完全不同了——想自己编译一份源码往往变得麻烦且充满坑,作者也常常懒得在文档里写清楚Windows的构建步骤。而网上的教程也是动辄就告诉你安装Visual Studio这种重量级工具,为了编译一个几百K的小程序往电脑里塞一套10几个G的开发环境。
以N2N为例:官方既没有提供Windows的release,文档里对Windows编译更是语焉不详。本文将带你在Windows中使用轻量的MSYS2配置MinGW64环境,安装完整的编译工具链,并最终成功构建N2N 3.0稳定版。当然,一旦你拥有了这套环境,编译其他开源项目也会轻松许多。
操作步骤
1. 配置MinGW64环境
使用MSYS2配置MinGW64环境,个人认为这是最简单,也是对系统影响最小的方式。以下是操作步骤。
- 从MSYS2官网下载MSYS2,用默认设置安装。
- 从开始菜单中找到
MSYS2 MINGW64(这里一定要看清楚名字)打开,显示MSYS2终端窗口。 - 执行以下命令安装编译所需工具,等待安装完成:
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-make mingw-w64-x86_64-openssl mingw-w64-x86_64-zstd git
2. 编译N2N 3.0
以下操作均在上述MSYS2终端中完成。
- 获取N2N 3.0源码:
mkdir /src && cd /src
git clone --branch 3.0-stable https://github.com/ntop/n2n.git
# 注意:请用上述clone的方法获取源码。不要使用release里的源码,那个在Windows中编译会出很多问题。
- 开始编译:
# 此时在/src目录下
cd ./n2n
mkdir build && cd ./build
cmake -G "MinGW Makefiles" ..
cmake --build .
- 等待编译完成,在系统
C:\msys64\src\n2n\bulid目录中可以看到编译好的edge.exe、supernode.exe,以及各种测试用的可执行文件。
至此,N2N的编译大功告成。这么看是不是还挺简单的。
其他说明
如果你不想用MSYS2终端,可以把以下路径加入到系统环境变量。这样就可以从Powershell或者CMD使用MinGW64的编译工具了。
C:\msys64\mingw64\bin
C:\msys64\usr\bin(给Git用的。如果你的系统里已经安装了Git就不需要加入这条)
MSYS2安装的软件都保存在上述目录中,不会修改Windows系统设置,或者往注册表、系统目录中写入什么意想不到的东西,是干净又卫生(褒义)的编译环境配置方案。
