N2N ×××是一个比较简单、好用的×××开源软件,可以方便的定制化。但是如果想修改完源码之后编译成Windows版本的话,比较困难,经过笔者多次试验,终于编译成功了Windows版本的N2N(包括SuperNode.exe和Edge.exe)。特纪录在此,以备后用。

关于N2N的更多介绍请参考网上的文章,本文不再赘述,这里仅仅记录如何编译Linux和Windows版本的过程。

 

首先,下载源码:

git clone https://github.com/meyerd/n2n.git
cd n2n/n2n_v2/

 

编译Linux版本(64bit),很简单,两条命令搞定:

cmake ./

make

 

但是编译Windows版本的话,比较费劲一点,因为N2N软件最近几年好像不怎么更新了,用的最新的编译器不一定能顺利编译出来。

笔者尝试了在Windows系统上编译未果之后,参考N2N原作者写的说明,借助mingw在Debian7上编译Windows版本(64bit):

apt-get install binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 gcc-mingw-w64-base gcc-mingw-w64-x86-64 gcc-mingw32 gfortran-mingw-w64-x86-64

mkdir build
cd build/
vim ../edge.c  # 定制化

vim ../cmake/CMakeToolchainFileMingw32.cmake  # 修改编译器:SET(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc) 和SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)

vim ../CMakeLists.txt  # 注释掉benchmark: #add_executable(benchmark benchmark.c) 和 #target_link_libraries(benchmark n2n)

cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/CMakeToolchainFileMingw32.cmake --build ./ ../
sed -i 's/CMAKE_RC_COMPILER-NOTFOUND/\/usr\/bin\/x86_64-w64-mingw32-gcc/g' CMakeCache.txt 
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/CMakeToolchainFileMingw32.cmake --build ./ ../
make