Linux应用程序开发(一)---移植thttpd+Sqlite3+PHP5到arm linux(2)

Linux应用程序开发(一)---移植thttpd+Sqlite3+PHP5到arm linux(2)  

移植环境(红色粗字体字修改后内容,蓝色粗体字为特别注意内容)

1,主机环境:VMare下CentOS 5.5 ,1G内存。

2,集成开发环境:Elipse IDE

3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。

4,开发板:mini2440,2M nor flash,128M nand flash。

5,u-boot版本:u-boot-2009.08

6,linux 版本:linux-2.6.32.2

7,参考文章:

移植thttpd Web服务器到ARM-Linux系统

深入研究嵌入式web服务器的视频监控应用

轻量型thttpd+php5

Cross compiling thttpd-2.21b + php-5.2.1

 

接上篇

3,安装PHP5

参考文章PHP5 交叉编译

安装之前应先下载下列源码:

php-5.2.11-thttpd-2.25b.tar.bz2源码:http://download2.3tera.net/oss/files/osm/thttpd-2.25b/

在安装php5之前应先安装下列库:

(1) zlib-1.2.5.tar.gz : http://www.dnaphp.com/downloads/server/linux/30-zlib-1-2-5-tar

zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。此函式库为自由软件,使用zlib授权。截至2007年3月,zlib是包含在Coverity的美国国土安全部赞助者选择继续审查的开源项目。

(2) libtool-2.4.tar.gz :  http://www.gnu.org/software/libtool/

在不同的系统中建立动态链接库的方法有很大的差别,这主要是因为每个系统对动态链接库的看法和实现并不相同,以及编译器对动态链接库支持的选项也不太一样。对于开发人员,如果尝试将使用动态库的软件在这些系统之间移植,需要参考枯涩难懂的系统手册,以及修改相应的 Makefile,这一工作是乏味的,并且具有一定的难度。

使用 GNU Libtool 可以容易的在不同的系统中建立动态链接库。它通过一个称为 Libtool 库的抽象,隐藏了不同系统之间的差异,给开发人员提供了一致的的接口。对于大部分情况,开发人员甚至不用去查看相应的系统手册,只需要掌握 GNU Libtool 的用法就可以了。并且,使用 Libtool 的 Makefile 也只需要编写一次就可以在多个系统上使用。

Libtool 库可以是一个静态链接库,可以是一个动态链接库,也可以同时包含两者。在这篇文档中,我们围绕 Libtool 库的建立和使用,只是在适当的说明 Libtool 库和系统动态或者静态链接库之间的映射关系。虽然 Libtool 隐藏了在不同平台创建链接库的复杂性,但其最终还是需要底层系统对链接库的支持,它不能超越系统的限制,例如,Libtool 并不能在不支持动态链接库的系统中创建出动态链接库。源自http://www.ibm.com/developerworks/cn/aix/library/1007_wuxh_libtool/。

(3) freetype-2.4.5.tar.bz2 : http://download.savannah.gnu.org/releases/freetype/

FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想。因此,FreeType的用户可以灵活地对它进行裁剪。源自http://baike.baidu.com/view/4579855.htm。

(4) libiconv-1.13.1.tar.gz : http://ftp.gnu.org/p /gnu/libiconv/

由于历史原因,国际化的文字常常由于语言或者国家的原因使用不同的编码。随着互联网时代的到来,通过互联网进行文字交流也逐渐增多:浏览外国的网站,这个时候字符编码的转换变得尤为重要。这带来了一个问题,就是许多字符在某一种编码方式中没有。为了解决这种混乱,Unicode的编码方式被建立。Unicode是一种超级编码包含了所有这些编码的字符集,因此一些新的文本格式像XML的默认编码方式就是Unicode.。

但是很多老式的计算机还在使用当地的传统的字符编码方式。而一些程序,例如邮件程序和浏览器必须能在这些不同的用户编码之间作转换。其他的一些程序则内置支持Unicode,以顺利支持国际化的处理,但是仍然有在Unicode和其他的传统编码之间转换的需求。GNU的libiconv就是为这两种应用设计的编码转换库。源自http://baike.baidu.com/view/3358257.htm

(5) jpegsrc.v8c.tar.gz : http://www.ijg.org/

JPEG是Joint Photographic Experts Group(联合图像专家组)的缩写,文件后辍名为".jpg"或".jpeg",是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间。源自http://baike.baidu.com/view/1635264.htm

(6) libpng-1.5.2.tar.gz : ftp://ftp.simplesystems.org/p /libpng/png/src/

libpng is the official PNG reference library. It supports almost all PNG features, is extensible, and has been extensively tested for over 15 years.源自http://www.libpng.org/p /png/libpng.html.

(7) libxml2-sources-2.7.8.tar.gz : ftp://xmlsoft.org/libxml2/

Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform)。源自http://xmlsoft.org/

(8) gd-2.0.35.tar.gz : http://www.dnaphp.com/downloads/server/linux/18-gd-2-0-35-tar

GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。在PHP处理图像,可使用GD库,而GD库开始时是支持GIF的,但由于GIF使用了有版权争议的LZW算法,会引起法律问题,于是从GD-1.6开始,GD库不再支持GIF,改为支持更好的,无版权争议的PNG。源自http://baike.baidu.com/view/1752478.htm。

(9)PEAR-1.9.4.tar.tgz : http://pear.php.net/package/PEAR/download

PAER 扩展库,PEAR是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写。它是一个PHP扩展及应用的一个代码仓库,简单地说,PEAR之于PHP就像是CPAN(Comprehensive Perl Archive Network)之于Perl。

PEAR的基本目标是发展成为PHP扩展和库代码的知识库,而这个项目最有雄心的目标则是试图定义一种标准,这种标准将帮助开发者编写可移植、可重用的代码。源自http://baike.baidu.com/view/20453.htm 。

(10)libmcrypt-2.5.8.tar.gz : http://cdnetworks-kr-2.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

mcrypt编码函数库,通过在php配置时加入--with-mcrypt使用此编码功能。

(11) openssl-1.0.0d.tar.gz : ftp://ftp.openssl.org/source/

SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。源自http://baike.baidu.com/view/300712.htm。

【1】安装zlib

 [root@localhost linux-test]# tar -zxf zlib-1.2.5.tar.gz

[root@localhost zlib-1.2.5]# CC=arm-linux-gcc ./configure --enable-shared --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueabi//此处要指定和编译器可执行程序在同级别的目录,否则将来用此库时会报错。
[root@localhost zlib-1.2.5]# make
[root@localhost zlib-1.2.5]# make install

【2】安装libtool

[root@localhost linux-test]# tar -zxvf libtool-2.4.tar.gz

[root@localhost libtool-2.4]# CC=arm-linux-gcc ./configure --host=arm-linux --enable-shared --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueabi
[root@localhost libtool-2.4]# make

[root@localhost libtool-2.4]# make install

【3】安装freetype

[root@localhost linux-test]# tar -jxvf freetype-2.4.5.tar.bz2
[root@localhost freetype-2.4.5]# CC=arm-linux-gcc ./configure --host=arm-linux --enable-shared --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueabi
[root@localhost freetype-2.4.5]# make
[root@localhost freetype-2.4.5]# make install


【4】安装jpegsrc

[root@localhost linux-test]# tar -zxvf jpegsrc.v8c.tar.gz
[root@localhost linux-test]# cd jpeg-8c
[root@localhost jpeg-8c]# CC=arm-linux-gcc ./configure --host=arm-linux --enable-shared --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueabi
[root@localhost jpeg-8c]# make
[root@localhost jpeg-8c]# make install

【5】安装libpng

[root@localhost linux-test]# tar -zxvf libpng-1.5.2.tar.gz
[root@localhost linux-test]# cd libpng-1.5.2
[root@localhost libpng-1.5.2]# CC=arm-linux-gcc ./configure --host=arm-linux --enable-shared --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueai
[root@localhost libpng-1.5.2]# make
[root@localhost libpng-1.5.2]# make install

【6】安装libiconv

[root@localhost linux-test]# cd libiconv-1.13.1
[root@localhost libiconv-1.13.1]# CC=arm-linux-gcc ./configure --host=arm-linux --enable-shared --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueabi
[root@localhost libiconv-1.13.1]# make
[root@localhost libiconv-1.13.1]# make install

【7】安装libxml2

[root@localhost linux-test]# tar -zxvf libxml2-sources-2.7.8.tar.gz
[root@localhost linux-test]# cd libxml2-2.7.8
[root@localhost libxml2-2.7.8]# CC=arm-linux-gcc ./configure --host=arm-linux --enable-shared --with-zlib --with-iconv --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueabi

[root@localhost libxml2-2.7.8]# make
[root@localhost libxml2-2.7.8]# make install

【8】安装gd

[root@localhost linux-test]# tar -zxvf gd-2.0.35.tar.gz
[root@localhost linux-test]# cd gd-2.0.35
[root@localhost gd-2.0.35]# export CC=arm-linux-gcc
[root@localhost gd-2.0.35]# export CXX=arm-linux-g++
[root@localhost gd-2.0.35]# export DIR=/usr/local/arm/4.4.3/arm-none-linux-gnueabi
[root@localhost gd-2.0.35]# ./configure --host=arm-linux --enable-shared --with-freetype --with-jpeg= --with-png --with-libiconv-prefix --prefix=/usr/local/arm/4.4.3/arm-none-linux-gneabi
[root@localhost gd-2.0.35]# make
[root@localhost gd-2.0.35]# make install

【9】安装libmcrypt

[root@localhost linux-test]# tar -zxvf libmcrypt-2.5.8.tar.gz
[root@localhost linux-test]# cd libmcrypt-2.5.8
[root@localhost libmcrypt-2.5.8]# CC=arm-linux-gcc ./configure --host=arm-linux --enable-shared --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueabi
[root@localhost libmcrypt-2.5.8]# make
... ...

../lib/.libs/libmcrypt.so: undefined reference to `rpl_malloc'
../lib/.libs/libmcrypt.so: undefined reference to `rpl_realloc'
collect2: ld returned 1 exit status
make[2]: *** [ciphertest] 错误 1
make[2]: Leaving directory `/root/linux-test/libmcrypt-2.5.8/src'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/root/linux-test/libmcrypt-2.5.8'
make: *** [all] 错误 2
在当前目录分别查找了rpl_malloc和rpl_malloc,发现configure里分别有#define malloc rpl_malloc和#define realloc rpl_realloc。分析configure 脚本相关的代码,原来是ac_cv_func_malloc_0_nonnull和ac_cv_func_realloc_0_nonnull引起的,OK,我们不让它检查了,产生一个cache文件arm-linux.cache,欺骗configure:

[root@localhost libmcrypt-2.5.8]# echo "ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes" >arm-linux.cache
[root@localhost libmcrypt-2.5.8]# CC=arm-linux-gcc ./configure --host=arm-linux --enable-shared --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueabi --cache-file=arm-linux.cache
[root@localhost libmcrypt-2.5.8]# make
[root@localhost libmcrypt-2.5.8]# make install

【10】安装php5

(1) 配置,有关php的选项配置请参考其帮助(即./configure --help)和PHP的编译配置详细选项

[root@localhost linux-test]# cd php-5.2.11
[root@localhost php-5.2.11]# CC=arm-linux-gcc CXX=arm-linux-g++ DIR=/usr/local/arm/4.4.3/arm-none-linux-gnueabiLDFLAGS+=-ldl ./configure --host=arm-linux --enable-shared --with-zlib-dir --with-ttf --with-freetype-dir --with-jpeg-dir --with-png-dir --with-gd --enable-gd-native-ttf --enable-soap --enable-libxml --with-libxml-dir  --with-iconv --with-sqlite=shared  --enable-pdo=shared --with-pdo-sqlite=shared--with-thttpd=../thttpd-2.25b  --enable-mbstring --enable-calendar --enable-sockets --enable-ftp --enable-sqlite-utf8  --enable-fastcgi  --enable-zend-multibyte  --enable-discard-path --without-pear --prefix=/nfsboot/rootfs/usr/local--with-config-file-path=/usr/local --with-config-file-scan-dir=/usr/local

配置说明:

<1>这里要禁用掉pear扩展,是为了避免安装时出现如下错:

make[1]: *** [install-pear-installer] 错误 126
make: *** [install-pear] 错误 2

<2>官方解读:sqlite_open()只支持sqlite2版本,暂不支持sqlite3版本;若连接sqlite3必须用sqlite_pdo去连接,若直接使用sqlite_open()会产生如下错误:

file is encrypted or is not a database
因为php要使用pdo链接sqlite3,所以上面的相关选项需要配置成 --with-sqlite=shared  --enable-pdo=shared --with-pdo-sqlite=shared,配置参考http://cn.php.net/manual/en/ref.pdo-sqlite.php

而且还要在php.ini的文件中作如下设置(在php.ini的542行附近):

; Directory in which the loadable extensions (modules) reside.
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613"
extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so

<3>如果加上--with-openssl-dir ,修要安装openssl,否则会出现类似如下错误(参考php官方解释Bug #28672 error: Problem with libjpeg.(a|so)):

checking for jpeg_read_header in -ljpeg... no
configure: error: Problem with libjpeg.(a|so).Please check config.log for more information.
安装时可参考openssl的安装与使用和Linux下OpenSSL安装详解+图解。

<4>加入php对动态扩展库的支持

在默认情况下,phpinfo显示:

standard
Dynamic Library support not available

这样无法加入一些自定义的动态库的链接,在配置时加入LDFLAGS+=-ldl ,这里是为了链接dlopen库,使

Dynamic Library Support => enabled

然后保存退出。

(3)编译
[root@localhost php-5.2.11]# make

... ...

/usr/local/include/gnu/stus.h:7:27: error: gnu/sts-32.h: No s h file or directory
make: *** [ext/date/php_date.lo] 错误 1
[root@localhost php-5.2.11]#

按照错误提示,进入到/usr/local/include/gnu目录下,打开stus.h,发现如下内容:

#include <bits/wordsize.h>

#if __WORDSIZE == 32
# include<gnu/stus-32.h>
#elif __WORDSIZE == 64
# include <gnu/stus-64.h>
#else
# error "unexpected value for __WORDSIZE macro"
#endif
在/usr/include/bits目录下找到wordsize.h,打开发现:

#define __WORDSIZE 32

说明定义的第一个条件满足,然后去包含 /usr/local/include/gnu/stus-32.h,而此目录下没有这个文件,故而出错。经过查找,这个文件在 /usr/inclue/gnu目录下,将其复制到该目录下后,再次make

... ...

/usr/local/arm/4.4.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.3/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lsqlite3
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] 错误 1

提示没有找到sqlite3库,把前面编译好库和相关头文件复制过去,再次make

[root@localhost php-5.2.11]# cp -a /nfsboot/rootfs/usr/local/lib/libsqlite3.so* /usr/local/arm/4.4.3/arm-none-linux-gnueabi/lib
[root@localhost php-5.2.11]#  cp -a /nfsboot/rootfs/usr/local/include/sqlite3.h /usr/local/arm/4.4.3/arm-none-linux-gnueabi/include
[root@localhost php-5.2.11]#  cp -a /nfsboot/rootfs/usr/local/include/sqlite3ext.h /usr/local/arm/4.4.3/arm-none-linux-gnueabi/include
[root@localhost php-5.2.11]#

OK,问题解决。

... ...

Build complete.
Don't forget to run 'make test'.

(4)安装

[root@localhost php-5.2.11]# make install
Installing PHP SAPI module:       thttpd
Installing PHP CLI binary:        /nfsboot/rootfs/usr/local/bin/
Installing PHP CLI man page:      /nfsboot/rootfs/usr/local/man/man1/
Installing shared extensions:     /nfsboot/rootfs/usr/local/lib/php/extensions/no-debug-non-zts-20060613/
Installing build environment:     /nfsboot/rootfs/usr/local/lib/php/build/
Installing header files:          /nfsboot/rootfs/usr/local/include/php/
Installing helper programs:       /nfsboot/rootfs/usr/local/bin/
  program: phpize
  program: php-config
Installing man pages:             /nfsboot/rootfs/usr/local/man/man1/
  page: phpize.1
  page: php-config.1
Installing PDO headers:          /nfsboot/rootfs/usr/local/include/php/ext/pdo/
[root@localhost php-5.2.11]#

拷贝到 php.ini-recommended 到 /usr/local目录下并命名为php.ini
[root@localhost php-5.2.11]# cp php.ini-recommended /nfsboot/rootfs/usr/local/php.ini
[root@localhost php-5.2.11]#

【10】重新编译安装thttpd

因为在安装php时通过指定--with-thttpd=../thttpd-2.25b选项在thttpd-2.25源码目录中产生了关联文件,如下
[root@localhost thttpd-2.25b]# ll
总计 868
-r-xr--r-- 1 root root   5792 2003-12-26 aclocal.m4
drwxr-xr-x 2 root root   4096 07-19 15:04 cgi-bin
drwxr-xr-x 2 root root   4096 07-20 14:15 cgi-src
-r-xr--r-- 1 root root  20370 1998-05-09 config.guess
-rwxr--r-- 1 root root  15929 07-19 18:38 config.h
-rwxr--r-- 1 root root  15942 07-19 18:33 config.h.orig
-r-xr--r-- 1 root root  19236 1998-05-09 config.sub
-rwxr--r-- 1 root root  84273 07-19 18:38 configure
-r-xr--r-- 1 root root   3540 07-19 18:38 configure.in
-r-xr--r-- 1 root root   3554 07-19 18:33 configure.in.orig
-rwxr--r-- 1 root root  84287 07-19 18:33 configure.orig
drwxr-xr-x 3 root root   4096 07-19 15:04 contrib
drwxr-xr-x 2 root root   4096 07-20 14:15 extras
-r-xr--r-- 1 root root  19762 2005-06-30 fdwatch.c
-r-xr--r-- 1 root root   3548 2005-06-30 fdwatch.h
-r-xr--r-- 1 root root    724 2002-04-03 FILES
-r-xr--r-- 1 root root    311 2005-06-30 index.html
-r-xr--r-- 1 root root   1268 2003-12-30 INSTALL
-r-xr--r-- 1 root root   5585 2001-03-30 install-sh
-r-xr--r-- 1 root root 114583 07-19 18:38 libhttpd.c
-r-xr--r-- 1 root root 115448 07-19 18:33 libhttpd.c.orig
-r-xr--r-- 1 root root   9058 07-19 18:38 libhttpd.h
-r-xr--r-- 1 root root   9144 07-19 18:33 libhttpd.h.orig
lrwxrwxrwx 1 root root     42 07-21 13:38 libphp5.a -> /root/linux-test/php-5.2.11/libs/libphp5.a
-rw-r--r-- 1 root root   5626 07-19 18:31 Makefile~
-rwxr--r-- 1 root root   4977 07-19 18:38 Makefile.in
-rwxr--r-- 1 root root   5063 07-19 18:33 Makefile.in.orig
-r-xr--r-- 1 root root   2661 2005-06-30 match.c
-r-xr--r-- 1 root root   1679 2005-06-30 match.h
-rwxr--r-- 1 root root    199 2001-12-24 mime_encodings.txt
-rwxr--r-- 1 root root   4632 2003-10-27 mime_types.txt
-r-xr--r-- 1 root root  12361 2005-06-30 mmc.c
-r-xr--r-- 1 root root   2402 2005-06-30 mmc.h
-rwxr--r-- 1 root root    668 07-21 13:38 php_makefile
-rwxr--r-- 1 root root      0 07-07 13:58 php_patched
lrwxrwxrwx 1 root root     48 07-21 13:38 php_thttpd.c -> /root/linux-test/php-5.2.11/sapi/thttpd/thttpd.c
-rwxr--r-- 1 root root  17873 07-19 18:33 php_thttpd.c.orig
lrwxrwxrwx 1 root root     52 07-21 13:38 php_thttpd.h -> /root/linux-test/php-5.2.11/sapi/thttpd/php_thttpd.h
-r-xr--r-- 1 root root   1326 2005-06-30 README
drwxr-xr-x 2 root root   4096 07-19 15:04 scripts
-r-xr--r-- 1 root root   1259 1999-08-17 strerror.c
-r-xr--r-- 1 root root   8284 2005-06-30 tdate_parse.c
-r-xr--r-- 1 root root   1575 2005-06-30 tdate_parse.h
-r-xr--r-- 1 root root  24410 2005-06-30 thttpd.8
-r-xr--r-- 1 root root  56926 07-19 18:38 thttpd.c
-r-xr--r-- 1 root root  57320 07-19 18:33 thttpd.c.orig
-r-xr--r-- 1 root root   7956 2005-06-30 timers.c
-r-xr--r-- 1 root root   3987 2005-06-30 timers.h
-rwxr--r-- 1 root root   2733 2003-10-27 TODO
-r-xr--r-- 1 root root    237 07-19 18:38 version.h
-r-xr--r-- 1 root root    240 07-19 18:33 version.h.orig

从上面信息可以看到,thttpd-2.25b源文件目录下有php新增的两个文件php_thttpd.c和php_thttpd.h是指向php-5.2.11源目录下的thttpd.c和php_thttpd.h的软连接,所以还需要重新编译安装thttpd。

(1)在重新编译安装之前make clean清除之前产生的中间文件

[root@localhost thttpd-2.25b]# make clean

(2)对php和thttpd之间的关联相关文件补丁

安装php时通过指定--with-thttpd=../thttpd-2.25b选项在thttpd-2.25源码目录中产生了关联文件没有补丁,现补丁如下
[root@localhost thttpd-2.25b]# patch -p1 <../php-5.2.11/sapi/thttpd/thttpd-2.25b_patch
patching file Makefile.in
patching file config.h
patching file configure
patching file configure.in
patching file libhttpd.c
patching file libhttpd.h
patching file php_thttpd.c
Hunk #2 succeeded at 659 (offset 3 lines).
patching file thttpd.c
patching file version.h
[root@localhost thttpd-2.25b]#

(3)进行配置

[root@localhost thttpd-2.25b]# CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/nfsboot/rootfs/usr/local

(4)还需要象开始安装时那样确认作如下修改

打开thttpd-2.25b目录下的Makefile,定位到50行附近,修改如下:

# You shouldn't need to edit anything below here.

CC =  arm-linux-gcc
CCOPT =  -O2

打开cgi-src/Makefile,定位到34行,修改如下:

CGIBINDIR = $(WEBDIR)/cgi-bin
MANDIR = ${prefix}/man

CC =  arm-linux-gcc
CCOPT =  -O2

打开extras/Makefile,定位到35行,修改如下:

MANDIR = ${prefix}/man

CC =  arm-linux-gcc
CCOPT =  -O2

(5)编译并安装

[root@localhost thttpd-2.25b]# make
[root@localhost thttpd-2.25b]# make install

未完,接下篇。

你可能感兴趣的:(Linux应用程序开发(一)---移植thttpd+Sqlite3+PHP5到arm linux(2))