Biarch 平台上的软件编译

若要在 Biarch 体系结构上为其他体系结构开发二进制代码,则必须另外安装用于第二个体系结构的各个库。 这些包称为 rpmname-32bit。 您还需要 rpmname-devel 包中各自的标题和库以及 rpmname-devel-32bit 中用于第二个体系结构的开发库。

大多数开放源代码程序使用基于 autoconf 的程序配置。 若要使用 autoconf 配置第二个体系结构的程序,请通过运行带有附加环境变量的 configure 脚本覆盖 autoconf 的常规编译器和链接器设置。

以下示例涉及 x86 为第二个体系结构的 x86_64 系统。

  1. 使用 32 位编译器:

    CC="gcc -m32"
  2. 指示链接器处理 32 位对象(总是使用 gcc 作为链接器前端):

    LD="gcc -m32"
  3. 设置组装器生成 32 位对象:

    AS="gcc -c -m32"
  4. 指定链接器标志,如 32 位库的位置,例如:

    LDFLAGS="-L/usr/lib"
  5. 指定 32 位对象代码库的位置:

    --libdir=/usr/lib
  6. 指定 32 位 X 库的位置:

    --x-libraries=/usr/lib

并不是每个程序都需要这些变量。 根据各个程序对这些变量进行调整。

CC="gcc -m32"
LDFLAGS="-L/usr/lib;"
./configure --prefix=/usr --libdir=/usr/lib --x-libraries=/usr/lib
make
make install