输入文件类型

编译器按照源文件的显示顺序来处理这些文件。 如果编译器找不到指定的源文件,那么它将生成一条错误消息,并且编译器将继续处理下一个指定的文件。

但是,链接程序不会运行,并且会除去临时对象文件。

缺省情况下,编译器会预处理并编译所有指定的源文件。 虽然您通常希望使用此缺省值,但可以使用编译器来预处理源文件而不进行编译。 请参阅 预处理 以获取详细信息。

可以将以下类型的文件输入到 IBM® Open XL C/C++ 编译器:

C 和 C++ 源文件
这些是包含 C 或 C++ 源代码的文件。

要使用 C 编译器来编译 C 语言源文件,源文件必须具有 .c (小写 c) 后缀,除非使用 -x c 选项进行编译。

要使用 C++ 编译器,除非使用 -x c++ 选项进行编译,否则源文件必须具有 .C (大写 C) , .cc , .cp , .cpp , .cxx 或 .c + + 后缀。

预处理的源文件
预处理文件对于检查宏和预处理器伪指令很有用。 编译器将预处理后的源文件以与 .c.C 文件相同的方式发送到再次预处理该文件的编译器。
具有 .i 后缀的文件可识别为预处理的 C 源文件,具有 .ii 后缀的文件可识别为预处理的 C++ 源文件。
对象文件
对象文件必须具有 .o 后缀,例如 file_name.o。 对象文件,库文件和 un磁带 可执行文件充当链接程序的输入。 编译后,链接程序会链接所有指定的对象文件以创建可执行文件。
汇编程序文件
除非使用 -x assembler 选项进行编译,否则汇编程序文件必须具有 .s 后缀,例如 file_name.s。 汇编程序文件以创建对象文件。
未预处理的汇编程序文件
除非使用 -x assembler-with-cpp 选项进行编译,否则未预处理的汇编程序文件必须具有 .S 后缀,例如 file_name.S。 编译器使用 .S 扩展名编译所有源文件,就像它们是需要预处理的汇编语言源文件一样。
共享库文件
共享库文件通常具有 .a 后缀 (例如, file_name.a) ,但也可以具有 .so 后缀 (例如, file_name.so)。
未剥离 可执行文件
扩展公共对象文件格式 (XCOFF) 未使用操作系统 strip 命令剥离的文件可用作编译器的输入。 请参阅 AIX® Commands Reference 中的 strip 命令以及 AIX Files Reference 中 a.out 文件格式的描述,以获取更多信息。
原始概要文件数据文件

-fprofile-generate 选项生成用于后续编译的运行时概要文件信息。 此信息存储在一个或多个文件中,其名称在缺省情况下与模式 default_*.profraw相匹配。 这些文件必须由 ibm-llvm-profdata 处理到合并的概要文件数据文件中,然后才能通过 -fprofile-use 选项进行后续编译来使用这些信息。