编译nginx-1.5.10一般须要下面库的支持:pcre,zlib,openssl
此次编译nginx-1.5.10使用的库版本号分别为pcre-8.34;openssl-1.0.0l;zlib-1.2.8将这些看和nginx放在同一文件夹例如以下图
在nginx加入一个shell脚本文件runscript.sh
#!/bin/sh
BUILD_PATH=../release
CC_PATH=/opt/buildroot-gcc342/bin/mipsel-linux-gcc
CPP_PATH=/opt/buildroot-gcc342/bin/mipsel-linux-g++
./configure
--with-openssl=/home/nginx/nginx/openssl-1.0.0l
--prefix=$BUILD_PATH
--user=nginx
--group=nginx
--builddir=$BUILD_PATH/build
--with-zlib=/home/nginx/nginx/zlib-1.2.8
--with-pcre
--with-pcre=/home/nginx/nginx/pcre-8.34
--with-pcre-jit
--with-cc=$CC_PATH
--with-cpp=$CPP_PATH
运行脚本文件后成成makefile
src/os/unix/ngx_files.c: In function `ngx_read_ahead': | |||||||
src/os/unix/ngx_files.c:473: warning: implicit declaration of function `posix_fadvise' | |||||||
make[1]: *** [../release/build/src/os/unix/ngx_files.o] 错误 1 | |||||||
make[1]: Leaving directory `/home/nginx/nginx/nginx-1.5.10' | |||||||
make: *** [build] 错误 2 | |||||||
[root@zq nginx-1.5.10]# |
将makefile中的
-Werror -g 去除
再次又一次运行make,又出现错误 | |||||||||||
objs/src/core/ngx_cycle.o:In function `ngx_init_cycle': | |||||||||||
/home/loongsoner/job/web-server/nginx-1.4.3/src/core/ngx_cycle.c:464:undefined reference to `ngx_shm_free' | |||||||||||
/home/loongsoner/job/web-server/nginx-1.4.3/src/core/ngx_cycle.c:469:undefined reference to `ngx_shm_alloc' | |||||||||||
/home/loongsoner/job/web-server/nginx-1.4.3/src/core/ngx_cycle.c:647:undefined reference to `ngx_shm_free' | |||||||||||
objs/src/event/ngx_event.o:In function `ngx_event_module_init': | |||||||||||
/home/loongsoner/job/web-server/nginx-1.4.3/src/event/ngx_event.c:526:undefined reference to `ngx_shm_alloc' | |||||||||||
意思是ngx_shm_free和ngx_shm_alloc函数没有定义,解决方法是定义宏NGX_HAVE_SYSVSHM |
在自己主动生成的头文件里加入下面宏
#ifndef NGX_SYS_NERR
#define NGX_SYS_NERR 132
#endif
#ifndef NGX_HAVE_SYSVSHM
#define NGX_HAVE_SYSVSHM1
#endif
终于make && make install生成nginx