直接编译openwrt SDK没问题。
然后添加openswan模块,编译出现如下错误:
/root/openwrt/kzl/openwrt/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620a/openswan-2.6.41/include/secrets.h:20:41: fatal error: gmp.h: No such file or directory
需要交叉编译gmp。
网上下载gmp-4.3.1.tar.bz2
运行如下命令,设置编译环境:
export CROSS_COMPILE=mipsel-linux-
export ARCH=mips
export HOST=mipsel-linux
export PREFIX=/home/cylan/openwrt/kzl
export AS=${CROSS_COMPILE}as
export CC=${CROSS_COMPILE}gcc
export LD=${CROSS_COMPILE}ld
export CPP="${CC} -E"
export AR=${CROSS_COMPILE}ar
export NM=${CROSS_COMPILE}nm
export STRIP=${CROSS_COMPILE}strip
export OBJCOPY=${CROSS_COMPILE}objcopy
export OBJDUMP=${CROSS_COMPILE}objdump
export PATH=/opt/buildroot-gcc342/bin/:$PATH
/opt/buildroot-gcc342/bin为交叉编译工具链目录,PATH要包含这个目录。
然后交叉编译:
./configure --host=mips --prefix=/home/cylan/openwrt/kzl
(经测试,--host=mips,--host=mips或者--host=mipsel-linux都可以,为什么?)
make & make install
make install会把头文件和库函数都安装到/home/cylan/openwrt/kzl目录下。
然后按如下步骤编译包括openswan的openwrt:
首先,重新打开一个shell,这样就把环境变量还原了,然后设置如下环境变量:
export CPATH=/home/cylan/openwrt/kzl/include
export LIBRARY_PATH=/home/cylan/openwrt/kzl/lib
把上面编译的gmp头文件目录和库目录设置到环境变量中。
然后,开始编译:make。