64bit
在 64 位系統上建構 32 位
我正在嘗試在我的 x86_64 Ubuntu 11.04 上為 i386(32 位)建構 PHP 記憶體記憶體擴展(v2.2.6)。
./configure
預設使用 config.guess (x86_64-unknown-linux-gnu
在我的系統上輸出),但我想覆蓋它。我將如何進行?
您需要兩件東西來交叉編譯:一個可以為目標架構生成程式碼的編譯器,以及用於目標架構的靜態庫 (
*.a
)。至少安裝軟體包,可能還有其他軟體包。還引入了包中交叉編譯所需的gcc組件。然後通過變數傳遞標誌來告訴 gcc 為 i386 編譯。libc6-dev-i386
lib32.*-dev
libc6-dev-i386
gcc-multilib
-m32``CFLAGS
sudo apt-get install libc6-dev-i386 lib32ncurses5-dev … # whatever 32-bit libraries you need export CFLAGS='-m32' ./configure …
如果您沒有找到所需的所有庫,那麼在chroot中安裝 32 位 Ubuntu 可能會更容易。Ubuntu從Debian buildd 項目中提供了dchroot ,這使得執行 chroot 系統變得容易。使用debootstrap執行安裝。Ubuntu 論壇上有一個看起來很合理的dchroot 教程。