1. ./configure --prefix=/xxx/xxxx/xxx
2. make
3. make install
问题:
1。configure: error: Cannot find either the gdbm or the db library.
解决:安装 gdbm库,./conf..... make makeinstall ,把出来的东西放入到/usr/local/include ,然后:在cwj.sh中:
#/bin/bash // http://markmail.org/thread/csdw4f4firtqdrra 来自
CPPFLAGS="-l/usr/local/include"
export CPPFLAGS
LDFLAGS="-L/usr/local/include"
export LDFLAGS
./configure --prefix=/home/caiwanjun/courier-authlib63/
这样就不会报错鸟。。。。因为导入了这些参数到当前shell中。
2.configure: error: C compiler cannot create executables See `config.log' for more details.
php5-mysql编译:
1.xml2-dev : sudo apt-get install xxxxml2-dev. 需要下载他的源代码,然后再用我锁需要的编译器编译这些代码成库,放入相应的/usr中。
2.执行make,此步骤如果出现“error: invalid 'asm': invalid operand for code 'w'”的错误,我的修改方式是修改生成的makefile,修改INCLS和DEFS和LDFLAGS和LIBS,把里面的相关路径都指定到你的交叉编译路径。 :这类问题都是hton ntoh 等一些函数导致的,
我解决:搜索/include 替换成你要移植的那个include.
make clean .
make .
make install .
错误:error: '_FPU_EXTENDED' undeclared (first use in this function)貌似在相应的文件中添加#include “fpu_control.h”就可以了。
我解决:直接自己定义这几个宏,去查/usr/include/fpu_contrul.h里面的定义,直接copy到当前即可。
3.could not read symbols: File in wrong format
文件格式错误:
1.可能是因为用的gcc编译器不一致所导致。总之,大家都应该用同一个gcc编译出来的东西才好。
最好在:./configure --host=armv7-marvell-linux --without-zlib CC=/usr/local/armv7-marvell-linux/bin/arm-marvell-linux-gnueabi-gcc 指定gcc编译器。
2.把那个库或者文件再次用你需要的编译器编译一下即可。
4.sapi/cli/php:无法执行二进制文件 make: *** [ext/phar/phar.php] 错误 126
1. 网上解决办法:make ZEND_EXTRA_LIBS='-liconv' 或者
在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要link 的iconv 函式库参数。 解决方法:编辑Makefile 我的php5.2.5在88行的地方:
EXTRA_LIBS = -lcrypt -lcrypt -lrt -lmysqlclient_r -lgd -lfreetype -lpng -lz -ljpeg -lz -lresolv -lm -ldl -lnsl -lxml2 -lz -lm -lxml2
-lz -lm -lmysqlclient_r -lz -lcrypt -lnsl -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -l
crypt
在最后加上-liconv,
EXTRA_LIBS = -lcrypt -lcrypt -lrt -lmysqlclient_r -lgd -lfreetype -lpng -lz -ljpeg -lz -lresolv -lm -ldl -lnsl -lxml2 -lz -lm -lxml2
-lz -lm -lmysqlclient_r -lz -lcrypt -lnsl -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -l
crypt -liconv
然后重新再次make 即可。
2.
Make时错误:
Generating phar.php
/bin/sh:/home/guo/zhuku/php-5.3.13/sapi/cli/php:无法执行二进制文件
make: ***[ext/phar/phar.php]错误 126
解决:
Configure的时候加上 --disable-phar
最后php的configure是:
./configure --host=arm-linux --prefix=/usr/local/php --with-libxml-dir=/usr/local/arm/4.2.2-eabi/arm-none-linux/ --with-iconv-dir=/usr/local/arm/4.2.2-eabi/arm-none-linux/ --with-zlib-dir=/usr/local/arm/4.2.2-eabi/arm-none-linux/ --with-zlib --without-iconv --disable-phar
我编译的仅仅:
./configure --host=armv7-marvell-linux --prefix=/home/caiwanjun/compile/php5-mysql/prefix --disable-phar CC=/usr/local/armv7-marvell-linux/bin/arm-marvell-linux-gnueabi-gcc
=======================
php要加个选项,表示与阿帕其一起编译。这样才ok了。-v 什么的。
**(openssl的交叉编译步骤:http://blog.chinaunix.net/uid-21273878-id-1828710.html
not found:但是,这个库或者文件已经存在了,为什么说not found呢?因为:该库或者该文件不是该平台环境所编译的,二进制不同。所以也找不到。