Solaris(64 位)开发者指南

编译器环境

为了同时支持 32 位应用程序和 64 位应用程序的创建,Sun Studio C、C++ 和 Fortran 编译环境已进行了增强。Sun Studio 中 10.0 发行版的 C 编译器可提供 64 位编译支持。

本机编译和交叉编译模式均受支持。缺省编译环境仍然可以生成 32 位应用程序。尽管这两种模式均受支持,但是它们仍特定于体系结构。使用 Sun 编译器无法在 x86 计算机上创建 SPARC 对象,也无法在 SPARC 计算机上创建 x86 对象。如果缺少体系结构规范或编译模式,则缺省情况下会定义相应的 __sparcv8__i386 符号,在此过程中还会定义 _ILP32。这会最大程度地提高与现有应用程序和硬件库的互操作性。

从 Sun Studio 8 发行版开始,可使用 cc(1) -xarch=generic64 标志来启用 64 位编译环境。

这会在 ELF64 对象中生成 LP64 代码。ELF64 是支持 64 位处理器和体系结构的 64 位目标文件格式,它与在缺省 32 位模式下进行编译时生成的 ELF32 目标文件相对。

-xarch=generic64 标志用来在 32 位或 64 位系统中生成 64 位代码。使用 32 位编译器可以在 32 位系统中生成 64 位对象;但是,不能在 32 位系统中运行 64 位对象。无需为 64 位库指定库路径。如果使用 -l-L 选项来指定其他库或库路径,并且该路径仅指向 32 位库,则链接程序会检测到这一情况,同时将失败并显示错误。

有关编译器选项的说明,请参见《Sun Studio 10 C 用户指南》。