Oracle® Developer Studio 12.5:概述

退出打印视图

更新时间: 2016 年 6 月
 
 

Oracle Developer Studio 编译器

Oracle Developer Studio 软件包含 C、C++ 和 Fortran 编译器,这些编译器具有以下功能:

  • 符合现代 C、C++ 和 Fortran 编程语言标准。

  • 根据指定的命令行选项,生成面向特定操作系统、处理器、体系结构、内存模型(32 位和 64 位)、浮点算法等等的代码。

  • 对串行源代码执行自动并行化处理,以生成在多核系统中性能得到增强的二进制文件。

  • 生成以您通过命令行选项指定的方式进行优化的代码,以适合应用程序和部署环境。

  • 准备二进制文件,用于通过其他 Oracle Developer Studio 工具进行增强的调试或分析。

  • 可以在所有编译器中使用相同的命令行选项来指定这些功能。

某些 Oracle Developer Studio 编译器选项可以用来优化编译后的代码以提高速度,并最佳利用处理器指令集和功能,这些选项包括:

–On

指定由 n 所指示的优化级别,可以是从 1 到 5 的数字。优化级别越高,所创建的二进制文件的运行时性能越好。

–fast

针对可执行代码的速度选择最优的编译选项组合。在调整可执行代码以实现最佳运行时性能时,可以从有效地使用 –fast 选项开始。

–g

在二进制文件中生成更多针对使用 dbx 进行调试以及使用性能分析器进行分析的信息。使用 –g 选项进行编译时,您可以充分利用性能分析器的全部功能,如查看带注释的源代码、函数信息以及描述编译器在编译程序时执行的优化和转换的编译器注释消息。

与其他编译器相比,Oracle Developer Studio 编译器提供的信息明显增多,更有助于您理解代码。通过优化,这些编译器插入了注释,用来描述对代码执行的转换、对并行处理的阻碍、循环迭代的操作计数等等。编译器注释可以显示在性能分析器等工具中。

C 编译器

Oracle Developer Studio C 编译器符合 ISO/IEC 9899:1999 编程语言 - CISO/IEC 9899:1990 编程语言 - C,以及部分编程语言 - C 和 ISO/IEC 9899:2014 标准。C 编译器还支持 OpenMP 4.0 共享内存并行 API。

C 编译系统由一个编译器、一个汇编程序和一个链接程序组成。cc 命令会自动调用其中每个组件,除非您使用命令行选项单独执行这些步骤。

cc 命令语法

cc 命令的语法如下:

cc [compiler-options] source-files [-Ldir] [-llibrary]...

可以键入 cc -flags 以查看所有可能的编译器选项的简短说明。

源文件名称可以用 .c.s.S.i 来结尾。名称不以其中的一个后缀结束的文件将传递到链接编辑器中。

还可以指定 –Ldir 选项以将目录添加到列表中(以便链接程序搜索库),并可指定 –llibrary 选项以将对象库添加到链接程序的搜索库列表中。由 –L 选项指定的目录按所列的顺序进行搜索。

缺省情况下,链接编辑器生成名为 a.out 的动态链接可执行文件。可以使用 –o filename 选项指定其他可执行文件名称。可以使用 –c 选项编译源文件并生成目标 (.o) 文件,但隐藏链接。

编译名为 test.c 的源文件并生成名为 a.out 的可执行文件:

% cc test.c

编译源文件 test1.ctest2.c,并将这两个文件链接到称为 test 的可执行文件中:

% cc -o test test1.c test2.c

分别编译这两个源文件并将它们链接到一个可执行文件中:

% cc -c test1.c
% cc -c test2.c
% cc test1.o test2.o

C 文档

有关使用 C 编译器以及 cc 命令及其选项的完整信息,请参见Oracle Developer Studio 12.5:C 用户指南cc(1) 手册页。有关新功能和已更改功能的信息,请参见Oracle Developer Studio 12.5 发行版的新增功能。有关编译器的问题和解决方法以及限制和不兼容性的信息,请参见Oracle Developer Studio 12.5:发行说明

C++ 编译器

Oracle Developer Studio C++ 编译器 (CC) 支持 C++ ISO 国际标准 ISO/IEC 14882:2014 编程语言 — C++C++ ISO 国际标准 ISO IS 14822:2003 编程语言 — C++CC 编译器还支持 OpenMP 4.0 共享内存并行 API。OpenMP 4.0 API 随 Oracle Developer Studio 12.5 提供。

有关 C++14 支持的具体信息,请参见Oracle Developer Studio 12.5 发行版的新增功能 中的 部分支持 C++14 标准

C++ 编译器 (CC) 根据指定的命令行选项,生成面向特定操作系统、处理器、体系结构、内存模型(32 位和 64 位)、浮点算法等等的代码。该编译器会自动将序列源代码并行化以生成在多核系统上有更好性能的二进制文件,并且还可以准备二进制文件以便其他 Oracle Developer Studio 工具更好地进行调试或分析。该编译器还支持 GNU C/C++ 兼容功能。

C++ 编译器由前端、优化器、代码生成器、汇编程序、模板预链接程序和链接编辑器组成。CC 命令会自动调用其中每个组件,除非使用命令行选项进行其他指定。

CC 命令语法

CC 命令的语法如下:

CC [compiler-options] source-files [-Ldir] [-l library]...

可以键入 CC -flags 以查看所有可能的 CC 编译器选项的简短说明。

源文件名称可以用 .c.C.cc.cxx.c++.cpp.i 结尾。名称不以其中的一个后缀结束的文件将视为目标文件或库,并移交给链接编辑器。

在源文件名称后,可以根据需要指定 –Ldir 选项以将目录添加到链接程序的搜索库列表中,并可指定 –llibrary 选项以将对象库添加到链接程序的搜索库列表中。在命令行上,–L 选项必须在关联的库之前。

缺省情况下,将按照指定的顺序来编译和链接文件,以生成名为 a.out 的输出文件。可以使用 –o filename 选项指定其他可执行文件名称。可以使用 –c 选项编译源文件并生成目标 (.o) 文件,但隐藏链接。

编译名为 test.C 的源文件并生成名为 a.out 的可执行文件:

% CC test.c

分别编译两个源文件 test1.ctest2.C,然后将它们链接到称为 test 的可执行文件中:

% CC -c test1.c
% CC -c test2.C
% CC -o test test1.o test2.o

C++ 文档

有关使用 C++ 编译器以及 CC 命令及其选项的完整信息,请参见Oracle Developer Studio 12.5:C++ 用户指南CC(1) 手册页。有关新功能和已更改功能的信息,请参见Oracle Developer Studio 12.5 发行版的新增功能。有关编译器的问题和解决方法以及限制和不兼容性的信息,请参见Oracle Developer Studio 12.5:发行说明

Fortran 95 编译器

Oracle Developer Studio 中的 Fortran 编译器已针对多处理器系统上的 Oracle Solaris 进行了优化。该编译器既可以执行自动循环并行,也可以执行显式循环并行,从而使程序能够在多处理器系统上高效运行。

Fortran 编译器与 Fortran77、Fortran90 和 Fortran95 标准兼容,并支持 OpenMP 4.0。

f95 命令调用 Oracle Developer Studio Fortran 编译器。

f95 命令语法

f95 命令的语法如下:

f95 [compiler-options] source-files... [-llibrary]

编译器选项附加在源文件名称前面。可以键入 f95 -flags 以查看所有可能的编译器选项的简短说明。

源文件名称必须是以 .f.F.f90.f95.F90.F95.for 结尾的一个或多个 Fortran 源文件的名称。

在源文件名称后,可以指定 –l library 选项(可选),以在链接程序的搜索库列表中添加对象库。

以下是通过两个源文件编译 Fortran 程序的样例命令:

% f95 -o hello_1 foo.f bar.f

使用单独的编译和链接步骤编译相同的程序:

% f95 -c -o bar.o bar.f
% f95 -c  -o foo.o foo.f
% f95 -o hello_1 bar.o foo.o  

编译同一个程序并链接到名为 libexample 的库中:

% f95 -o hello_1 foo.f bar.f -lexample

Fortran 文档

有关使用 Fortran 95 编译器以及 f95 命令及其选项的说明的完整信息,请参见Oracle Developer Studio 12.5:Fortran 用户指南f95(1) 手册页。有关新功能和已更改功能的信息,请参见Oracle Developer Studio 12.5 发行版的新增功能。有关编译器的问题和解决方法以及限制和不兼容性的信息,请参见Oracle Developer Studio 12.5:发行说明