n2n koolshare lede x64 交叉编译

n2n koolshare lede x64 交叉编译

首先非常感谢这篇博文的原作者:http://www.lucktu.com/archives/778.html

安装cmake3.6

编译新版的n2n需要用到cmake3版本,而centos7的yum安装的cmake版本为2.8,需要手工安装cmake。
首先卸载cmake

yum remove cmake

下载cmake3.6 https://cmake.org/files/v3.6/cmake-3.6.0-Linux-x86_64.tar.gz
下载的不是安装包,而是可执行文件,解压后将cmake目录添加到PATH

vim /etc/bashrc
#在文件末尾添加
export PATH=$PATH:/usr/local/cmake3.6/bin

下载sdk(toolchain)

下载openwrt相应版本的sdk,koolshare LEDE x64最新版的sdk为 LEDE17.01.6
下载地址为 http://downloads.openwrt.org/releases/17.01.6/targets/x86/64/lede-sdk-17.01.6-x86-64_gcc-5.4.0_musl-1.1.16.Linux-x86_64.tar.xz

解压缩到目录 /home/wjm/compiler/sdk/lede17.01.5_gcc-5.4.0

交叉编译openssl

下载地址:http://distfiles.macports.org/openssl/
解压缩到目录 /home/wjm/compiler/lib/openssl-1.1.1d
进入openssl目录,设置生成路径,不需要生成汇编

./config no-asm shared --prefix=/home/wjm/compiler/sdk/lede17.01.5_gcc-5.4.0/staging_dir/toolchain

接着修改 MakeFile 文件 ,指定交叉编译的gcc

CROSS_COMPILE=x86_64-openwrt-linux-
CC=$(CROSS_COMPILE)gcc
CXX=$(CROSS_COMPILE)g++
CPPFLAGS=
CFLAGS=-Wall -O3
CXXFLAGS=-Wall -O3
LDFLAGS=
EX_LIBS=

同时,删除-m64,两个地方需要删除。

CNF_CFLAGS=-pthread -m64
CNF_CXXFLAGS=-std=c++11 -pthread -m64

编译安装

make
sudo make install

交叉编译n2n

下载源代码,我打算编译的是v2s版本,源码地址为https://github.com/meyerd/n2n.git下的n2n_v2

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

进入n2n_v2目录,使用cmake构建Makefile
修改CMakeLists.txt在最上部SET两个变量

SET(CMAKE_CXX_COMPILER "x86_64-openwrt-linux-g++")
SET(CMAKE_C_COMPILER "x86_64-openwrt-linux-gcc")

project(n2n)
cmake_minimum_required(VERSION 2.6)

修改环境变量,可以根据需要将环境变量添加到bashrc中或者仅在当前shell中执行(如果只是临时编译)
添加STAGING_DIR,修改PATH,将toolchain的bin添加到PATH

export STAGING_DIR=/home/wjm/compiler/sdk/lede17.01.5_gcc-5.4.0/staging_dir
export PATH=$STAGING_DIR/toolchain/bin:$PATH

在源代码目录新建build目录,用于存储编译结果

mkdir build

运行cmake,指定编译类型,并将安装目录指定为build

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=build
make
sudo make install
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值