在64位系统上构建32位

Modified on: Sat, 30 Jun 2018 08:22:30 +0800

我正在尝试在我的x86_64 Ubuntu 11.04上为i386(32位)构建PHP memcache扩展(v2.2.6)。

./configure默认使用config.guess(在我的系统上输出x86_64-unknown-linux-gnu),但我想覆盖它。

我该怎么办?

作者:Caleb,thwd

最佳答案

您需要两件事进行交叉编译:可以为目标体系结构生成代码的编译器,以及目标体系结构的静态库(*.a)。至少安装libc6-dev-i386 包,可能还有其他lib32.*-devlibc6-dev-i386还在gcc-multilib 。然后通过-m32标志通过CFLAGS变量告诉gcc为i386编译。

sudo apt-get install libc6-dev-i386 lib32ncurses5-dev … # whatever 32-bit libraries you need
export CFLAGS='-m32'
./configure …

如果找不到所需的所有库,那么在chroot。 Ubuntu发布dchroot 来自Debian buildd项目,这使得运行chrooted系统变得容易。使用debootstrap 以执行安装。在Ubuntu论坛上有一个看似合理的dchroot教程

作者:Seth,Gilles

相关问答

添加新评论