输入文件类型
编译器按照源文件的显示顺序来处理这些文件。 如果编译器找不到指定的源文件,那么它将生成一条错误消息,并且编译器将继续处理下一个指定的文件。
但是,链接程序不会运行,并且会除去临时对象文件。
缺省情况下,编译器会预处理并编译所有指定的源文件。 虽然您通常希望使用此缺省值,但可以使用编译器来预处理源文件而不进行编译。 请参阅 预处理 以获取详细信息。
可以将以下类型的文件输入到 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 文件相同的方式发送到再次预处理该文件的编译器。
- 对象文件
- 对象文件必须具有 .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 选项进行后续编译来使用这些信息。