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