交叉编译NGINX FOR OPENWRT
Nginx 1.6.0 for openwrt
编译失败,报错如下:
./configure: error: can not detect int size
cat: /home/chillbu/Projects/nginx/openwrt-build/build/autotest.c: No such file or directory
已经参考网上编译方法进行修改,编译步骤链接。
相关资料:
1. openwrt官方论坛关于nginx交叉编译的讨论(链接)
Nginx 1.2.2 for openwrt
官方论坛讨论有两点启发:
- openwrt有官方的nginx package可用;
- 思路的调整。在开始自己手工交叉编译前,为什么不考虑使用现成可用版本。如果要动手也可以参考现有可用版本的修改。
因此整理思路如下:
- 下载官方nginx包,尝试源码编译,确认编译环境没有问题
- 若编译成功则进行新版本的交叉编译修改
行动如下:
(1)下载官方源码包
通过feeds下载,在openwrt目录执行:
./scripts/feeds install nginx
程序会下载nginx及相关依赖包pcre,保存位置如下:
nginx – feeds/packages/net/nginx
pcre – feeds/packages/libs/pcre(2)下载真正源码并修改
官方源码包并不包含真正的源码,需要从Makefile的描述中找到下载地址,例如nginx Makefile指定的源码是nginx官方源码,版本1.2.2。
另外一个需要关注的是源码包中的patches目录。里面描述了对源码包的修改,在编译前需要应用这些修改。通常是将patches目录copy到下载源码的目录,执行:
patch -p1 < ./patches/patch文件名
(3)运行configure
configure的运行需要参考Makefile,如果有相关描述,那么需要按照Makefile描述进行操作,否则可能会报错
未完待续。。。

浙公网安备 33010602011771号