不能安装 g++-multilib,求助!

内核编译和嵌入式产品的设计与开发
回复
头像
liangwilliam
帖子: 36
注册时间: 2008-07-27 11:16
来自: 廣州

不能安装 g++-multilib,求助!

#1

帖子 liangwilliam » 2012-08-15 1:20

想编译一个微型Web服务器放在路由器运行,用toolchain编译PHP要解决各种依赖关系,太麻烦,发现用buildroot构建toolchain可以一并搞定PHP.遂试之.
本着编译东西越少越好的原则,在一开始直接使用了buildroot编译好的工具链(mips)的,在menuconfig选的是mipsel,虽然都编译出来了,但是东西到了路由器运行不了.
只好老老实实自己编译toolchain,toolchain编译出来便用helloworld试了下编译器,确定可以运行了,再继续编译下去.
可是到了php的时候就出问题了.

代码: 全选

In file included from /usr/include/stdlib.h:25:0,
                 from /cross/buildroot/output/build/php-5.3.15/include/../main/php_config.h:2452,
                 from /cross/buildroot/output/build/php-5.3.15/Zend/zend_config.h:1,
                 from /cross/buildroot/output/build/php-5.3.15/Zend/zend.h:51,
                 from /cross/buildroot/output/build/php-5.3.15/main/php.h:34,
                 from /cross/buildroot/output/build/php-5.3.15/ext/iconv/iconv.c:27:
/usr/include/features.h:324:26: 致命错误:bits/predefs.h:没有那个文件或目录
编译中断。
make: *** [ext/iconv/iconv.lo] 错误 1
系统是linux mint 12 64bit
从这里http://www.cyberciti.biz/faq/x86_64-linux-erro ... ution/得知要装 g++-multilib

但是从新立得装的时候好像遇到依赖关系的死循环了

代码: 全选

g++-multilib:
 依赖: gcc-multilib 但是此软件包将不会被安装
 依赖: g++-4.6-multilib 但是此软件包将不会被安装

代码: 全选

gcc-multilib:
 依赖: gcc-4.6-multilib 但是此软件包将不会被安装

代码: 全选

g++-4.6-multilib:
 依赖: gcc-4.6-multilib 但是此软件包将不会被安装

代码: 全选

gcc-4.6-multilib:
 依赖: libc6-dev-i386 但是此软件包将不会被安装
到我要装libc6-dev-i386的时候,又有这提示:

代码: 全选

libc6-dev-i386:
  依赖: libc6-i386 (=2.13-20ubuntu5.1) 但是 2.15-0ubuntu13 将会被安装
  依赖: libc6-dev (=2.13-20ubuntu5.1) 但是 2.15-0ubuntu13 将会被安装
 推荐: gcc-multilib 但是此软件包将不会被安装
这要怎么办呢?
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 不能安装 g++-multilib,求助!

#2

帖子 枫叶饭团 » 2012-08-15 7:11

为什么要装multilib...直接装32位的啊
头像
liangwilliam
帖子: 36
注册时间: 2008-07-27 11:16
来自: 廣州

Re: 不能安装 g++-multilib,求助!

#3

帖子 liangwilliam » 2012-08-15 8:39

枫叶饭团 写了:为什么要装multilib...直接装32位的啊
我根据/usr/include/features.h:324:26: 致命错误:bits/predefs.h:没有那个文件或目录,
将#include <>改成绝对路径,最后发现需要一个名为 stubs-32.h 的文件,但是我的系统上没有!
然后在http://www.cyberciti.biz/faq/x86_64-lin ... -solution/ 找到方法
On ubuntu 64-bit version, solution is:
sudo apt-get install g++-multilib
说要安装g++-multilib就有了这个问题了.

不过刚才手贱,把mint12升到13,出问题了,直接在虚拟机里面装了个32bit的mint13.
在把 /usr/include/i386-linux-gnu 里的文件夹和文件链接到 /usr/include/ 就顺利编译下来了.
现在的问题是.我编译好了PHP,但是怎么知道需要把那些文件拷贝到路由器上呢?
ldd用不了啊.说是

代码: 全选

$ ldd php
	不是动态可执行文件
回复