CentOS下交叉编译Windows N2N服务端及客户端
记录一下N2N Linux下的服务端、客户端,以及在CentOS下交叉编译Windows版本的N2N。
这里使用的是n2n的一个分支,有v1和v2两个版本,以v2版本为例,编译过程均基于CentOS 7 64bits
其他系统参阅:https://github.com/meyerd/n2n/wiki/Compilation
此文已过于陈旧,不推荐使用此版本N2N
Linux
yum install cmake make openssl openssl-devel gcc-c++ git -y
git clone https://github.com/meyerd/n2n.git
cd n2n/n2n_v2
cmake ./
make && make install
查看版本
Windows
在CentOS 64bits下交叉编译Windows版本稍微有些复杂,关键步骤也就那几步
#安装环境
yum install mingw64-gcc-c++.x86_64 cmake openssl openssl-devel gcc-c++ git make -y
git clone https://github.com/meyerd/n2n.git
git源码到本地之后,需要做一些小调整,否则有各种问题。
还是以v2版本为例,先将v2的源码移动到上级目录,然后返回到n2n目录
cd n2n/n2n_v2
mv * ..
cd ..
修改cmake/CMakeToolchainFileMingw32.cmake文件,将原有的i686-mingw32-gcc两行替换为:
SET(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
接着在n2n目录下新建编译文件夹build,开始编译
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/CMakeToolchainFileMingw32.cmake --build ./ ../
make
等待编译完成后,build目录下就有Windows版的客户端(edge.exe)及服务端(supernode.exe)
已编译好的Windows程序:
https://file.bugxia.com/s/b6MAp6LS78b6XBp
压缩包中包含了v1、v2版本的客户端和服务端,还有客户端需要安装的虚拟网卡TapV9
46 条评论
使用Cmake的时候出现这个
CMake Error: CMake was unable to find a build program corresponding to “Unix Makefiles”. CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
@admlnos
看提示只能看出是编译器没安装
检查一下,编译所需的环境确定一样别落下
yum install mingw64-gcc-c++.x86_64 cmake openssl openssl-devel gcc-c++ git -y
@Bug侠
你在yum这段里再加个make就可以解决了,改一下教程文档吧
@Bug侠
yum installmingw64- gcc- c++.x86_64 cmake openssl openssl- devel gcc- c++ git make – y这样就不会出问题了
@Bug侠
我是直接复制你的指令才会出现这个问题
@admlnos
得看你那边的情况,比如执行yum是什么结果呢?有没有报什么错呢?
@Bug侠
没有报错估计是centos8的锅
@admlnos
好吧,才看到之前你还有回复~不好意思啊