ZHCUAU3J January 2018 – March 2024
选项控制编译器的运行。本部分说明选项约定和选项摘要表。此外,还提供常用选项(包括用于类型检查的选项)的详细说明。
如需查看选项的帮助屏幕摘要,请在命令行上输入不带参数的 cl7x。
下述原则适用于编译器选项:
可以使用 C7X_C_OPTION 环境变量为编译器定义默认选项。有关环境变量的详细说明,请参阅节 3.4.1。
表 3-1 到表 3-27 汇总了所有选项(包括链接选项)。使用表中的参考资料以获取更完整的选项说明。
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--silicon_version=id | -mv | 选择目标版本。默认为 7100。 | 节 3.3.5 |
--silicon_errata_i2117 | 生成代码以处理 C7100 器件勘误表 i2117。 | 节 3.3.4 | |
--silicon_errata_i2376={on|off} | 生成代码以处理 C7504 器件勘误表 i2376。 | 节 3.3.4 | |
--big_endian | -me | 以大端字节序格式生成目标代码。默认格式为小端字节序。 | 节 3.3.4 |
--mma_version={ 1 | 2 | 2_256 | disallow } | 指定要在目标器件上使用的矩阵乘法加速器 (MMA) 的版本。 | 节 3.3.4 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--opt_level=off | 禁用所有优化(如果未使用选项且 --vectypes=off,则为默认值)。 | 节 4.1 | |
--opt_level=n | -On | 级别 0 (-O0) 仅优化寄存器使用情况(如果未使用选项且 --vectypes=on,则为默认值)。 级别 1 (-O1) 使用级别 0 优化并在本地进行优化。 级别 2 (-O2) 使用级别 1 优化并在本地进行优化(如果使用选项但无设置,则为默认值)。 级别 3 (-O3) 使用级别 2 优化并对文件进行优化。 级别 4 (-O4) 使用级别 3 优化并执行链接时间优化。 |
节 4.1、节 4.3 |
--opt_for_speed[=n] | -mf | 控制大小和速度之间的权衡(0-5 范围)。如果未指定此选项,或此选项未指定 n,则默认值为 4。 | 节 4.2 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--assume_addresses_ok_for_stream={off|on} | 如果启用,使用 --auto_stream 选项控制的自动流式传输将假定寻址模式合法地映射到流。 | 节 4.15.9 | |
启用此假设可能会导致更多地使用流引擎 (SE) 或流地址生成器 (SA)。可能需要此类假设的情况包括但不限于:应用于向量指针的 64 位索引、无符号索引和数组索引。 | |||
--auto_inline=[size] | -oi | 设置自动内联大小(仅限 --opt_level=3)。如果未指定 size,则默认值为 1。 | 节 4.5 |
--auto_stream={off|saving|no_saving} | 控制编译器是否在可能且有利的情况下尝试自动使用流引擎 (SE) 和流地址生成器 (SA)。 | 节 4.15.9 | |
在“off”模式下,将禁止自动使用 SE 和 SA。在“saving”模式下,SE 和/或 SA 状态将被保存,以防它们已在使用中。在“no_saving”模式下,无需保存上下文即可自动使用 SE 和 SA。C7100 和 C7120 器件仅支持“off”或“no_saving”模式,“off”是默认值。较新的器件(例如 C7504)支持所有三种模式,并且 --auto_stream=saving 是默认设置。 | |||
--call_assumptions=n | -opn | 级别 0 (-op0) 指定了模块包含从提供给编译器的源代码外部调用或修改的函数和变量。 级别 1 (-op1) 指定了模块包含从提供给编译器的源代码外部修改的变量,但不使用从源代码外部调用的函数。 级别 2 (-op2) 指定了模块不包含从提供给编译器的源代码外部调用或修改的函数或变量(默认值)。 级别 3 (-op3) 指定了模块包含从提供给编译器的源代码外部调用的函数,但不使用从源代码外部修改的变量。 |
节 4.4.1 |
--disable_inlining | 防止发生任何内联。 | 节 3.10 | |
--fp_mode={relaxed|strict} | 启用或禁用宽松浮点模式。 | 节 3.3.3 | |
--fp_reassoc={on|off} | 启用或禁用浮点算术的重新关联。 | 节 3.3.3 | |
--fp_single_precision_constant | 使所有未添加后缀的浮点常量都被视为单精度值(而非双精度常量)。 | 节 3.3.3 | |
--gen_opt_info=n | -onn | 级别 0 (-on0) 会禁用优化信息文件。 级别 1 (-on2) 会生成优化信息文件。 级别 2 (-on2) 会生成详细的优化信息文件。 |
节 4.3.1 |
--optimizer_interlist | -os | 交叉列出优化器注释与汇编语句。 | 节 4.12 |
--program_level_compile | -pm | 组合源文件以执行程序级优化。 | 节 4.4 |
--src_interlist | -s | 交叉列出优化器注释(如果可用)和汇编源语句;否则交叉列出 C 语言和汇编源语句。 | 节 3.3.2 |
--aliased_variables | -ma | 通知编译器传递给函数的地址可能会由被调用函数中的别名修改。 | 节 4.9.1 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--symdebug:dwarf | -g | 默认行为。启用符号调试。调试信息的生成不会影响优化。因此,默认情况下会生成调试信息。 | 节 3.3.6 节 4.13 |
--symdebug:dwarf_version=3|4 | 指定 DWARF 格式版本。默认版本为 4。 | 节 3.3.6 | |
--symdebug:none | 禁用所有符号调试。 | 节 3.3.6 节 4.13 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--include_path=directory | -I |
将指定的目录添加到 #include 搜索路径。 | 节 3.5.2.1 |
--preinclude=filename | 在编译开始时包含 filename。 | 节 3.3.3 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--compile_only | -c | 禁用链接(否定 --run_linker)。 | 节 11.1.3 |
--help | -h | 打印(在标准输出设备上)编译器理解的选项的说明。 | 节 3.3.2 |
--run_linker | -z | 导致从编译器命令行调用链接器。 | 节 3.3.2 |
--skip_assembler | -n | 编译 C/C++ 源文件,从而生成汇编语言输出文件。汇编器不会运行,也不会生成目标文件。 | 节 3.3.2 |
--keep_asm | -k | 保留汇编语言 (.asm) 文件。 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--c89 | 根据 ISO C89 标准处理 C 文件。 | 节 5.12 | |
--c99 | 根据 ISO C99 标准处理 C 文件。 | 节 5.12 | |
--c11 | 根据 ISO C11 标准处理 C 文件。 | 节 5.12 | |
--c++14 | 根据 ISO C++14 标准处理 C++ 文件。 | 节 5.12 | |
--cpp_default | -fg | 将所有带有 C 扩展名的源文件作为 C++ 源文件处理。 | 节 3.3.8 |
--exceptions | 启用 C++ 异常处理。 | 节 5.6 | |
--extern_c_can_throw | 允许外部 C 函数传播异常。 | -- | |
--float_operations_allowed ={none|all|32|64} |
限制允许的浮点运算类型。 | 节 3.3.3 | |
--pending_instantiations=# | 指定在任何给定时间内可能正在进行的模板实例化的数量。使用 0 指定一个不受限制的数字。 | 节 3.3.4 | |
--printf_support={nofloat|full| minimal} |
支持更小、有限版本的 printf 函数系列(sprintf、fprintf 等)和 scanf 函数系列(sscanf、fscanf 等)运行时支持函数。 | 节 3.3.3 | |
--relaxed_ansi | -pr | 启用宽松模式;忽略严格的 ISO 违规。默认设置为 on。要禁用此模式,请使用 --strict_ansi 选项。 | 节 5.12.3 |
--strict_ansi | -ps | 启用严格的 ANSI/ISO 模式(适用于 C/C++,不适用于 K&R C)。在此模式下,禁用与 ANSI/ISO C/C++ 冲突的语言扩展。在严格的 ANSI/ISO 模式下,大多数 ANSI/ISO 违规都会报告为错误。被视为酌情处理的违规行为可能会报告为警告。 | 节 5.12.3 |
--vectypes={on|off} | 启用对 TI 矢量数据类型的支持。默认为 on。 | 节 5.3.2 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--preproc_dependency[=filename] | -ppd | 仅执行预处理,但不写入预处理的输出,而是写入适合于输入到标准 make 实用程序的依赖行列表。 | 节 3.5.8 |
--preproc_includes[=filename] | -ppi | 仅执行预处理,但不写入预处理的输出,而是写入 #include 指令中包含的文件列表。 | 节 3.5.9 |
--preproc_macros[=filename] | -ppm | 仅执行预处理。将预定义和用户定义的宏列表写入与输入同名但扩展名为 .pp 的文件。 | 节 3.5.10 |
--preproc_only | -ppo | 仅执行预处理。将预处理的输出写入与输入同名但扩展名为 .pp 的文件。 | 节 3.5.4 |
--preproc_with_comment | -ppc | 仅执行预处理。将预处理的输出(保留注释)写入与输入同名但扩展名为 .pp 的文件。 | 节 3.5.6 |
--preproc_with_compile | -ppa | 使用任何通常会禁用编译的 -pp<x> 选项在预处理后继续编译。 | 节 3.5.5 |
--preproc_with_line | -ppl | 仅执行预处理。将带有行控制信息(#line 指令)的预处理的输出写入与输入同名但扩展名为 .pp 的文件。 | 节 3.5.7 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--compiler_revision | 打印出编译器发布版本并退出。 | -- | |
--diag_error=num | -pdse | 将由 num 标识的诊断分类为错误。 | 节 3.7.1 |
--diag_remark=num | -pdsr | 将由 num 标识的诊断分类为备注。 | 节 3.7.1 |
--diag_suppress=num | -pds | 抑制由 num 标识的诊断。 | 节 3.7.1 |
--diag_warning=num | -pdsw | 将由 num 标识的诊断分类为警告。 | 节 3.7.1 |
--diag_wrap={on|off} | 使诊断消息换行(默认为 on)。请注意,此命令行选项不能在 Code Composer Studio IDE 中使用。 | ||
--display_error_number | -pden | 显示诊断的标识符及其文本。请注意,此命令行选项不能在 Code Composer Studio IDE 中使用。 | 节 3.7.1 |
--emit_warnings_as_errors | -pdew | 将警告视为错误。 | 节 3.7.1 |
--issue_remarks | -pdr | 发出备注(非严重警告)。 | 节 3.7.1 |
--no_warnings | -pdw | 抑制诊断警告(仍会发出错误)。 | 节 3.7.1 |
--quiet | -q | 抑制进度消息(静默)。 | -- |
--set_error_limit=num | -pdel | 将错误限制设置为 num。在达到此错误数量后,编译器放弃编译。(默认为 100。) | 节 3.7.1 |
--super_quiet | 超级静默模式。 | -- | |
--tool_version | -version | 示每个工具的版本号。 | -- |
--verbose | 显示横幅和函数进度信息。 | -- | |
--verbose_diagnostics | -pdv | 提供详细的诊断消息,以自动换行的方式显示原始源代码。请注意,此命令行选项不能在 Code Composer Studio IDE 中使用。 | 节 3.7.1 |
--write_diagnostics_file | 生成诊断消息信息文件。编译器唯一选项。请注意,此命令行选项不能在 Code Composer Studio IDE 中使用。 | 节 3.7.1 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--gen_preprocessor_listing | -pl | 生成原始列表文件 (.rl)。 | 节 3.9 |
--section_sizes={on|off} | 生成段大小信息,包括含可执行代码和常量、常量或初始化数据(全局和静态变量)以及未初始化数据的段的大小。(如果此选项未包含在命令行中,则默认为 off。如果使用此选项但未指定值,则默认为 on。) | 节 3.7.1 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--common={on|off} | 设置为 on 时,未初始化的文件范围变量作为通用符号发出。设置为 off 时,不会创建通用符号。 | 节 3.3.4 | |
--debug_software_pipeline | -mw | 生成详细的软件流水线报告。 | 节 4.7.2 |
--disable_software_pipeline | -mu | 关闭软件流水线。 | 节 4.7.1 |
--fp_not_associative | -mc | 阻止对关联浮点运算进行重新排序。 | 节 4.10 |
--gen_data_subsections={on|off} | 将所有聚合数据(数组、结构和联合体)放入子段中。这使得链接器可以更好地控制在最终链接步骤期间删除未使用的数据。有关默认设置的详细信息,请参阅右侧的链接。 | 节 11.2.3 | |
--gen_func_subsections={on|off} | -mo | 将每个函数放在目标文件的一个单独子段中。如果未使用此选项,则默认为 off。有关默认设置的详细信息,请参阅右侧的链接。 | 节 11.2.2 |
--ramfunc={on|off} | 如果设置为 on,则表示每个函数都将从 RAM 运行。函数将被放置在 RAM 中,并针对 RAM 执行进行优化。等效于在转换单元的所有函数中指定 __attribute__((ram_func))。 | 节 3.3.4 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--entry_hook[=name] | 启用入口挂钩。 | 节 3.13 | |
--entry_parm={none|name| address} |
将函数的参数指定给 --entry_hook 选项。 | 节 3.13 | |
--exit_hook[=name] | 启用出口挂钩。 | 节 3.13 | |
--exit_parm={none|name|address} | 将函数的参数指定给 --exit_hook 选项。 | 节 3.13 | |
--remove_hooks_when_inlining | 删除自动内联函数的入口/出口挂钩。 | 节 3.13 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--asm_file=filename | -fa | 不管其扩展名为何,都将 filename 标识为汇编源文件。默认情况下,编译器和汇编器将 .asm 文件视为汇编源文件。 | 节 3.3.8 |
--c_file=filename | -fc | 不管其扩展名为何,都将 filename 标识为 C 源文件。默认情况下,编译器将 .c 文件视为 C 源文件。 | 节 3.3.8 |
--cpp_file=filename | -fp | 不管其扩展名为何,都将 filename 标识为 C++ 文件。默认情况下,编译器将 .C、.cpp、.cc 和 .cxx 文件视为 C++ 文件。 | 节 3.3.8 |
--obj_file=filename | -fo | 不管其扩展名为何,都将 filename 标识为目标代码文件。默认情况下,编译器和链接器将 .obj 文件视为目标代码文件,包括 *.c.obj 和 *.cpp.obj 文件。 | 节 3.3.8 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--asm_directory=directory | -fs | 指定汇编文件目录。默认情况下,编译器使用当前目录。 | 节 3.3.11 |
--obj_directory=directory | -fr | 指定目标文件目录。默认情况下,编译器使用当前目录。 | 节 3.3.11 |
--output_file=filename | -fe | 指定编译输出文件名;可以覆盖 --obj_directory。 | 节 3.3.11 |
--pp_directory=dir | 指定预处理器文件目录。默认情况下,编译器使用当前目录。 | 节 3.3.11 | |
--temp_directory=directory | -ft | 指定临时文件目录。默认情况下,编译器使用当前目录。 | 节 3.3.11 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--asm_extension=[.]extension | -ea | 设置汇编源文件的默认扩展名。 | 节 3.3.10 |
--c_extension=[.]extension | -ec | 设置 C 源文件的默认扩展名。 | 节 3.3.10 |
--cpp_extension=[.]extension | -ep | 设置 C++ 源文件的默认扩展名。 | 节 3.3.10 |
--listing_extension=[.]extension | -es | 设置列表文件的默认扩展名。 | 节 3.3.10 |
--obj_extension=[.]extension | -eo | 设置目标文件的默认扩展名。 | 节 3.3.10 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--cmd_file=filename | -@ | 将文件内容解释为命令行的扩展。可以使用多个 -@ 实例。 | 节 3.3.2 |