7.3. Biarch 平台的軟體編譯

若要在 biarch 架構上,為其他結構開發二進位程式,必須為第二個結構額外安裝相關程式庫。這些套件稱為 rpmname-32bit。您也需要 rpmname-devel 套件的個別標頭和程式庫,以及 rpmname-devel-32bit 第二個架構的開發程式庫。

大部份的開放原始碼程式使用的程式組態是以 autoconf 為基礎。若要使用 autoconf 為第二個結構設定程式,請覆寫 autoconf 的一般編譯器和連結器設定,方法是執行包含其他環境變數的 configure 程序檔。

以下範例,將 x86 的 AMD64 或 EM64T 系統指示為第二個架構:

  1. 設定 autoconf 使用 32 位元編譯器:

    CC="gcc -m32"
  2. 指示連結器處理 32 位元物件:

    LD="ld -m elf64_i386"
  3. 設定組合器來產生 32 位元物件:

    AS="gcc -c -m32"
  4. 判斷 libtool 等等的程式庫是否來自 /usr/lib

    LDFLAGS="-L/usr/lib"
  5. 決定程式庫是否儲存在 lib 子目錄中:

    --libdir=/usr/lib
  6. 決定是否使用 32 位元 X 程式庫:

    --x-libraries=/usr/X11R6/lib/

並非每一個程式都需要所有這些變數。將它們配合各程式使用。

CC="gcc -m64"            \
LDFLAGS="-L/usr/lib64;"  \
        .configure       \
          --prefix=/usr  \
          --libdir=/usr/lib64
make
make install