所有 64 位体系结构都支持 64 位对象的开发。32 位编译的支持级别取决于体系结构。GCC(GNU 编译器集合)和 binutils(包括汇编器 as 和链接器 ld)中的工具链有多个实施选项:
使用 biarch 开发工具链可以生成 32 位对象和 64 位对象。在几乎所有平台上,默认设置都是编译 64 位对象。如果使用特殊的标志,则可以生成 32 位对象。对于 GCC,此特殊标志是 -m32(对于生成 s390 库,此特殊标志是 -m31)。用于 binutils 的标志是依赖于体系结构的,但 GCC 将正确的标志传送到链接器和汇编器。现有 amd64(支持 x86 和 amd64 指令的开发)、s390x 和 ppc64 的 biarch 开发工具链。32 位对象通常是在 ppc64 平台上创建的。-m64 标志用于生成 64 位对象。
SUSE Linux Enterprise 当前不支持在所有平台上直接开发 32 位软件。要在 ia64 下开发用于 x86 的应用程序,请使用对应的 SUSE Linux Enterprise 32 位版本。
必须以一种独立于体系结构的形式编写所有头文件。 安装的 32 位和 64 位库必须具有与安装的头文件匹配的 API(应用程序编程接口)。普通 SUSE Linux Enterprise 环境是根据此原则设计的。如果是手动更新的库,请自行解决此问题。