HOST: MINT

NGINX VERSION: nginx-1.8.0(nginx-1.8.0.tar.gz)

ZLIB VERSION: zlib-1.2.8

PCRE VERSION: pcre-8.33

nginx 竟然不太支持交叉编译,configure里面没有现成參数能够设置。

只是幸好提供了--with-cc --with-cpp。

网上最新的PCRE版本号是10.0,nginx使用这个版本号会有问题(pcre2),建议使用pcre-8.33.

1. 编辑auto/cc/name文件第十行

ngx_feature_run=yes =》

ngx_feature_run=no

否则./configure ... 会出现“checking for C compiler ... not found”之类的提示

2. 编辑auto/types/sizeof,36行

ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS =》

ngx_test="gcc $CC_TEST_FLAGS $CC_AUX_FLAGS

否则./configure ... 会出现“objs/autotest: Syntax error: "(" unexpected”之类的提示

3. ./configure --prefix=/disk2/nginx/install --with-zlib=/disk2/zlib/zlib-1.2.8 --with-pcre --with-pcre=/disk2/pcre/pcre-8.33 --with-pcre-jit --with-cc=powerpc-linux-gcc  --with-cpp=powerpc-linux-g++

--with-zlib 后面是你zlib 解压以后的source文件夹

--with-pcre 后面是你pcre 解压以后的source文件夹

--with-cc 后面请直接写powerpc 的 c compiler名称,能够加上路径(最好c compiler在PATH路径中)

--with-cpp 后面请直接写powerpc 的 c++ compiler名称,能够加上路径(最好c++ compiler在PATH路径中)

4. 如今make的话会出现“cc1: warnings being treated as errors”

编辑 objs/Makefile,取消CFLAGS中的-Werror标志(第三行)

CFLAGS =  -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g =》

CFLAGS =  -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -g

5. 还是要编辑objs/Makefile,大约是1100行

./configure --disable-shared  --enable-jit =》

./configure --disable-shared  --enable-jit --host=powerpc-e300c3-linux-gnu

明白host,否则编译pcre过程中有提示:“If you meant to cross compile, use `--host'.”

--host=powerpc-e300c3-linux-gnu =》改动一下

6. 编辑src/os/unix/ngx_errno.h。

#include <ngx_core.h>后面加上

#ifndef NGX_SYS_NERR

#define NGX_SYS_NERR 666

#endif

7. 编辑src/os/unix/ngx_shmem.c,第12行

#if (NGX_HAVE_MAP_ANON) =》

#if (!NGX_HAVE_MAP_ANON)

不改动这个,会出现“undefined reference to `ngx_shm_free'“错误

8. 对于ppc32或者其它32位cpu,编辑objs/ngx_auto_config.h,第77行

#define NGX_PTR_SIZE  8 =》

#define NGX_PTR_SIZE  4

否则编译后程序在目标机执行会出现“Illegal instruction”,或者

nginx: [emerg] invalid number "1024" in /home/nginx/conf/nginx.conf:13,等等不能正常识别数字问题

9. make

10. make install




为powerpc交叉编译nginx的更多相关文章

  1. 交叉编译php5,、nginx、squid方法

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 交叉编译php5 软件版本:php-5.4.27 依赖库:zlib,libxml2 交叉编译器:arm-hisi ...

  2. Nginx在嵌入式系统中的应用

    -----------------本文转载自 http://blog.csdn.net/xteda/article/details/39708009 ------------------------- ...

  3. nginx Unit 服务器

    转自: https://github.com/nginx/unit/pull/18/ 感谢: https://www.v2ex.com/t/389528 English 简体中文 繁體中文 NGINX ...

  4. Nginx-->基础-->理论-->001:Nginx基本介绍

    一.nginx基本介绍 传统上基于进程或者线程模型架构的web服务通过每进程或者每线程处理并发连接请求,这势必毁在网络和I/O操作时产生阻塞,其另外一个必然结果则是对内存和CPU的利用率低下,产生一个 ...

  5. 新塘ARM平台交叉编译minigui界面库

    简介 MiniGUI 是一款面向嵌入式系统的高级窗口系统(Windowing System)和图形用户界面(Graphical User Interface,GUI)支持系统,由魏永明先生于 1998 ...

  6. minigui交叉编译整理

    简介 MiniGUI 是一款面向嵌入式系统的高级窗口系统(Windowing System)和图形用户界面(Graphical User Interface,GUI)支持系统,由魏永明先生于 1998 ...

  7. nginx php-cgi php

    /*************************************************************************** * nginx php-cgi php * 说 ...

  8. CentOS6 上OpenWRT交叉编译

    目的不是为了编译固件,而是为了一个是编译可执行文件,放倒op的路由器上跑,另一个目的是安装一些开源软件折腾下(例如ss-lib),需要打包成 .ipk 格式 路由设备信息 erya@ERYA:~$ c ...

  9. nginx ----> 官网about页面(翻译)

    Nginx about链接:https://nginx.org/en/ nginx 基本的HTTP服务器功能其他HTTP服务器功能邮件代理服务器功能TCP / UDP代理服务器功能架构和可扩展性经测试 ...

随机推荐

  1. hibernate 管理 Session(单独使用session,非spring)

    Hibernate 自身提供了三种管理 Session 对象的方法 Session 对象的生命周期与本地线程绑定 Session 对象的生命周期与 JTA 事务绑定 Hibernate 托付程序管理 ...

  2. 2015.05.04,外语,读书笔记-《Word Power Made Easy》 14 “如何谈论日常现象” SESSION 41

    1. people are the craziest animals bovine(['bәuvain] adj. (似)牛的, 迟钝的),像牛一样placid(['plæsid] adj. 安静的, ...

  3. nyoj--1185--最大最小值(线段树)

    最大最小值 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 给出N个整数,执行M次询问. 对于每次询问,首先输入三个整数C.L.R: 如果C等于1,输出第L个数到第R个数 ...

  4. jQuery插件开发的两种方法

    1 类级别 类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQuery.extend(object); $. ...

  5. QT-解除connect

    前言:解除关联. 一.新建工程 二.新建部件 在ui设计界面拖入一个line edit,一个label以及两个button按钮 右键“关联”按钮转到槽,选择clicked(),添加如下代码: void ...

  6. Rsync 服务器搭建

    Rsync简介 rsync 是一个 Unix 系统下的文件同步和传输工具. 它具备以下特性: 1. 能更新整个目录和树和文件系统 2. 有选择性的保持符号链链.硬链接.文件属于.权限.设备以及时间 等 ...

  7. C# 特性(Attribute)

    C# 特性(Attribute) 特性(Attribute)是用于在运行时传递程序中各种元素(比如类.方法.结构.枚举.组件等)的行为信息的声明性标签.您可以通过使用特性向程序添加声明性信息.一个声明 ...

  8. Hua Wei 机试题目三---2014

    一.根据对应规则进行翻译输出 描述:已知有如下的对应规则: ,则输入任意个正整数,输出经过规则翻译以后对应的结果. 例如:输入:1234:输出bcde. 题目很简单,我觉得需要注意的问题就是对于大整数 ...

  9. iOS11即将到来,让我们具体了解下

    谷歌开发者大会后,苹果的WWDC终于也要来了,目前准确时间已经确定. 近日,苹果官方发出的公告显示,WWDC 2017将在北京时间6月6日凌晨1点正式进行,同时他们强调会进行现场直播,用户可以在苹果主 ...

  10. shell编程-1.字符截取命令-列截取awk+printf