交叉编译

来源:互联网 发布:方舟生存进化优化驱动 编辑:程序博客网 时间:2024/06/05 01:54

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,修改INCLSDEFSLDFLAGSLIBS,把里面的相关路径都指定到你的交叉编译路径。 :这类问题都是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呢?因为:该库或者该文件不是该平台环境所编译的,二进制不同。所以也找不到。

原创粉丝点击