海思(hisi)交叉编译nginx+spawn+ fcgi+fcgiwrap

(1) 2024-08-08 09:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
海思(hisi)交叉编译nginx+spawn+ fcgi+fcgiwrap,希望能够帮助你!!!。

一、编译nginx

1.指定编译路径

./configure --prefix=./install  --with-cc=arm-himix200-linux-gcc  --with-cpp=arm-himix200-linux-g++  --with-zlib=$PWD/libs/zlib-1.2.11 --with-pcre=$PWD/libs/pcre-8.41 --without-http_upstream_zone_module --with-openssl=$pwd/libs/openssl-1.1.1l

遇到错误,cannot run C compiled programs

海思(hisi)交叉编译nginx+spawn+ fcgi+fcgiwrap_https://bianchenghao6.com/blog__第1张

 1.修改./objs/Makefile文件

找到prce编译模块,增加configure的配置参数

海思(hisi)交叉编译nginx+spawn+ fcgi+fcgiwrap_https://bianchenghao6.com/blog__第2张

 修改为

海思(hisi)交叉编译nginx+spawn+ fcgi+fcgiwrap_https://bianchenghao6.com/blog__第3张

2.遇到错误

error: 'NGX_SYS_NERR' undeclared (first use in this function)

     msg = ((ngx_uint_t) err < NGX_SYS_NERR) ? &ngx_sys_errl

解决方法:

修改objs下面的nginx_auto_config.h文件,在文件内添加

#ifndef NGX_SYS_NERR

#define NGX_SYS_NERR 132

#endif

3.遇到错误

home/ys/webTest/nginx-1.18.0/src/core/ngx_cycle.c:476: undefined reference to `ngx_shm_alloc'

/home/ys/webTest/nginx-1.18.0/src/core/ngx_cycle.c:685: undefined reference to `ngx_shm_free'

解决方法

#ifndef NGX_HAVE_SYSVSHM

#define NGX_HAVE_SYSVSHM 1

#endif 

二、编译 Spawn-fcgi

 ./configure --host=arm-himix200-linux 

三、编译 fcgi

 ./configure --host=arm-himix200-linux --prefix=$(pwd)/libs

Make;make install

四、编译 fcgiwrap

 ./configure --host=arm-himix200-linux CFLAGS="-L$(pwd)/libs -lfcgi -I$(pwd)/libs/include"  --prefix=$(pwd)/hisi

CFLAGS指定交叉编译出lfcgi的路径和头文件。

可能对host支持不是很完善,需要修改makefile文件,添加交叉编译项

海思(hisi)交叉编译nginx+spawn+ fcgi+fcgiwrap_https://bianchenghao6.com/blog__第4张

 

继续编译遇到 undefined reference to 'rpl_malloc'

海思(hisi)交叉编译nginx+spawn+ fcgi+fcgiwrap_https://bianchenghao6.com/blog__第5张

 

此时修改当前目录下的config.h文件,将下图行屏蔽掉

海思(hisi)交叉编译nginx+spawn+ fcgi+fcgiwrap_https://bianchenghao6.com/blog__第6张

 

再次编译,编译成功

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复