64ビットシステムで32ビットビルド

64ビットシステムで32ビットビルド

x86_64 Ubuntu 11.04でi386(32ビット)用のPHP Memcache拡張機能(v2.2.6)を構築しようとしています。

./configureデフォルトではconfig.guessが使用されますが(私のシステムに出力x86_64-unknown-linux-gnu)、それを上書きしたいと思います。

どうやって進めますか?

ベストアンサー1

クロスコンパイルには2つが必要です。ターゲットアーキテクチャ用のコードを生成できるコンパイラとターゲットアーキテクチャ*.a用の静的ライブラリ()。少なくともインストールしてくださいlibc6-dev-i386 libc6-dev-i386のインストールパッケージなどlib32.*-devバッグ。また、libc6-dev-i386クロスコンパイルに必要なgccコンポーネントも紹介します。gcc-multilibパック gcc-multilibのインストール。その後、-m32変数にフラグを渡してgccにi386用にコンパイルするように指示しますCFLAGS

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

必要なライブラリがすべて見つからない場合は、Linuxに32ビットUbuntuをインストールする方が簡単です。chroot。 Ubuntu船ルートディレクトリ dchrootのインストール~からDebian ビルドプロジェクト、ルート指定システムを簡単に実行できます。使用ブート防止プログラム debootstrapのインストールインストールを実行します。合理的なUbuntuフォーラムのdchrootチュートリアル

おすすめ記事