交叉编译Shadowsocks-libev踩过的坑
Oct 19, 2017
最近到手1个K2p, 刷了openwrt-chaos-calmer,在编译shadowsocks-libev的时候遇到很多坑,这里记录下。
编译过程参考了shadowsocks/openwrt-shadowsocks的README,OpenWrt SDK 文档,以及这篇文章。
./scripts/feeds update
报错
- 有用的报错信息:
Argument "4.2.1" isn't numeric in numeric ge (>=) at ./scripts/feeds line 25 |
- 解决方法:
打上下面这个patch,或者手动修改./scripts/feeds
:
my @mkver = split /\s+/, `$mk -v`, 4; |
make menuconfig
报错
- 有用的报错信息:
make -s -C scripts/config all CC=cc: build failed. Please re-run make with -j1 V=s to see what's going on |
- 解决方法:
按照报错信息,运行make -j1 v=s
- 有用的报错信息:
The C compiler |
- 解决方法:
这里卡了很长时间,直到无意中在pacman中搜到ccache这个软件包,抱着试一下的心态安装完,make ./package/shadowsocks-libev/compile V=99
终于开始编译依赖包了。但是make menuconfig
还是报错build failed
。
编译依赖包pcre不通过
- 有用的报错信息:
Unescaped left brace in regex is illegal here in regex staging_dir/host/bin/automake-1.15 line 3938 |
- 解决方法:
找错误信息找到眼瞎,不得不说gcc
的interface就是一坨屎啊,应该不是给人用的吧??!
找到错误信息就简单了,google爸爸愉快地给出了答案…
给./staging_dir/host/bin/automake
打上下面这个patch
:
From 13f00eb4493c217269b76614759e452d8302955e Mon Sep 17 00:00:00 2001 |
最后总结
make ./package/shadowsocks-libev/compile V=99
成功编译出ipk文件。但最后make menuconfig
还是无法运行,不管啦!啦啦啦~~