ZHCUAQ1F july 2015 – april 2023
选项控制编译器的运行。本部分说明选项约定和选项摘要表。此外,还提供常用选项(包括用于类型检查和汇编的选项)的详细说明。
如需查看选项的帮助屏幕摘要,请在命令行上输入不带参数的 cl6x。
下述原则适用于编译器选项:
可以使用 C6X_C_OPTION 环境变量为编译器定义默认选项。有关环境变量的详细说明,请参阅节 3.4.1。
表 3-1 到表 3-28 汇总了所有选项(包括链接选项)。使用表中的参考资料以获取更完整的选项说明。
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--silicon_version=id | -mv | 选择目标版本。默认为 6400+。其他支持的选项为 6600 和 6740。 | 节 3.3.5 |
--big_endian | -me | 以大端格式生成目标代码。 | 节 3.3.4 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--opt_level=off | 禁用所有优化(默认值)。 | 节 4.1 | |
--opt_level=n | -On | 级别 0 (-O0) 仅优化寄存器使用情况。 级别 1 (-O1) 使用级别 0 优化并在本地进行优化。 级别 2 (-O2) 使用级别 1 优化并在本地进行优化。 级别 3 (-O3) 使用级别 2 优化并对文件进行优化。 |
节 4.1、节 4.3 |
--opt_for_space=n | -ms | 在四个级别(0、1、2 和 3)上控制代码大小。 | 节 4.9 |
--opt_for_speed[=n] | -mf | 控制大小和速度之间的权衡(0-5 范围)。如果未指定此选项,或此选项未指定 n,则默认值为 4。 | 节 4.2 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--auto_inline=[size] | -oi | 设置自动内联大小(仅限 --opt_level=3)。如果未指定 size,则默认值为 1。 | 节 4.5 |
--call_assumptions=n | -opn | 级别 0 (-op0) 指定了模块包含从提供给编译器的源代码外部调用或修改的函数和变量。 级别 1 (-op1) 指定了模块包含从提供给编译器的源代码外部修改的变量,但不使用从源代码外部调用的函数。 级别 2 (-op2) 指定了模块不包含从提供给编译器的源代码外部调用或修改的函数或变量(默认值)。 级别 3 (-op3) 指定了模块包含从提供给编译器的源代码外部调用的函数,但不使用从源代码外部修改的变量。 |
节 4.4.1 |
--disable_inlining | 防止发生任何内联。 | 节 3.11 | |
--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.16 |
--program_level_compile | -pm | 组合源文件以执行程序级优化。 | 节 4.4 |
--sat_reassoc={on|off} | 启用或禁用饱和算术的重新关联。默认为 --sat_reassoc=off。 | 节 3.3.3 | |
--aliased_variables | -ma | 通知编译器传递给函数的地址可能会由被调用函数中的别名修改。 | 节 4.12.1 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--symdebug:dwarf | -g | 默认行为。启用符号调试。调试信息的生成不会影响优化。因此,默认情况下会生成调试信息。 | 节 3.3.6 节 4.17 |
--symdebug:dwarf_version=2|3 | 指定 DWARF 格式版本。 | 节 3.3.6 | |
--symdebug:none | 禁用所有符号调试。 | 节 3.3.6 节 4.17 |
|
--disable_push_pop | 禁用调用 RTS 函数 _push_rts() 和 _pop_rts() 的代码大小优化。如果收到有关超出调用位置范围的 RTS 例程进行调用的警告,可能需要使用此选项。 | -- | |
--machine_regs | 将寄存器操作数显示为汇编代码中的机器寄存器。 | 节 3.3.12 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--include_path=directory | -I |
将指定的目录添加到 #include 搜索路径。 | 节 3.5.2.1 |
--preinclude=filename | 在编译开始时包含 filename。 | 节 3.3.3 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--compile_only | -c | 禁用链接(否定 --run_linker)。 | 节 6.1.3 |
--help | -h | 打印(在标准输出设备上)编译器理解的选项的说明。 | 节 3.3.2 |
--run_linker | -z | 导致从编译器命令行调用链接器。 | 节 3.3.2 |
--skip_assembler | -n | 编译 C/C++ 源文件或线性汇编源文件,从而生成汇编语言输出文件。汇编器不会运行,也不会生成目标文件。 | 节 3.3.2 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--c89 | 根据 ISO C89 标准处理 C 文件。 | 节 7.13 | |
--c99 | 根据 ISO C99 标准处理 C 文件。 | 节 7.13 | |
--c11 | 根据 ISO C11 标准处理 C 文件。 | 节 7.13 | |
--c++14 | 根据 ISO C++14 标准处理 C++ 文件。 已弃用 --c++03 选项。 |
节 7.13 | |
--cpp_default | -fg | 将所有带有 C 扩展名的源文件作为 C++ 源文件处理。 | 节 3.3.8 |
--exceptions | 启用 C++ 异常处理。 | 节 7.6 | |
--extern_c_can_throw | 允许外部 C 函数传播异常。 | -- | |
--float_operations_allowed ={none|all|32|64} |
限制允许的浮点运算类型。 | 节 3.3.3 | |
--gen_cross_reference_listing | -px | 生成交叉引用列表文件 (.crl)。 | 节 3.9 |
--multithread | 在编译器生成的目标文件中插入构建属性,这样使 TI 链接器在自动选择 RTS 库或解析对 libc.a 的引用时选择RTS库的线程安全版本。或者,可以使用同名的链接器选项 (--multithread) 来强制链接器在即使没有任何目标文件包含此构建属性的情况下也要选择RTS库的线程安全版本。如果使用 --openmp 选项,则会自动启用 --multithread 选项。 | 节 8.10.2 | |
--openmp | --omp | 支持OpenMP。使用此选项会自动启用 --multithread 选项,这样使 TI 链接器在自动选择 RTS 库或解析对 libc.a 的引用时选择RTS库的线程安全版本。 | 节 8.10.1 |
--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 选项。 | 节 7.13.3 |
--rtti | -rtti | 启用 C++ 运行时类型信息 (RTTI)。 | –- |
--strict_ansi | -ps | 启用严格的 ANSI/ISO 模式(适用于 C/C++,不适用于 K&R C)。在此模式下,禁用与 ANSI/ISO C/C++ 冲突的语言扩展。在严格的 ANSI/ISO 模式下,大多数 ANSI/ISO 违规都会报告为错误。被视为酌情处理的违规行为可能会报告为警告。 | 节 7.13.3 |
--vectypes={on|off} | 启用对 TI 矢量数据类型的支持。 | 节 7.3.2 | |
--wchar_t={32|16} | 设置 C/C++ 类型 wchar_t 的大小。默认为 16 位。 | 节 3.3.4 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--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.10 |
--section_sizes={on|off} | 生成段大小信息,包括含可执行代码和常量、常量或初始化数据(全局和静态变量)以及未初始化数据的段的大小。(如果此选项未包含在命令行中,则默认为 off。如果使用此选项但未指定值,则默认为 on。) | 节 3.7.1 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--assume_control_regs_read | 假设读取 FP 和 SAT 位。 | 节 3.3.4 | |
--common={on|off} | 默认为 on。设置为 on 时,未初始化的文件范围变量作为通用符号发出。设置为 off 时,不会创建通用符号。 | 节 3.3.4 | |
--debug_software_pipeline | -mw | 生成详细的软件流水线报告。 | 节 4.6.2 |
--disable_software_pipeline | -mu | 关闭软件流水线。 | 节 4.6.1 |
--fp_not_associative | -mc | 阻止对关联浮点运算进行重新排序。 | 节 4.13 |
--gen_data_subsections={on|off} | 将所有聚合数据(数组、结构和联合体)放入子段中。这使得链接器可以更好地控制在最终链接步骤期间删除未使用的数据。有关默认设置的详细信息,请参阅右侧的链接。 | 节 6.2.3 | |
--gen_func_subsections={on|off} | -mo | 将每个函数放在目标文件的一个单独子段中。如果未使用此选项,则默认为 off。有关默认设置的详细信息,请参阅右侧的链接。 | 节 6.2.2 |
--interrupt_threshold[=num] | -mi | 指定中断阈值。 | 节 3.12 |
--mem_model:const= {far_aggregates|far|data} |
允许常量对象远远独立于--mem_model:data 选项。 | 节 8.1.4.3 | |
--mem_model:data= {far_aggregates|near|far} |
确定数据访问模型。 | 节 8.1.4.1 | |
--no_bad_aliases | -mt | 允许某些有关别名和循环的假设。 | 节 4.12.2 |
--no_compress | 阻止压缩。 | -- | |
--no_reload_errors | 关闭所有与重新加载相关的循环缓冲区错误消息。 | -- | |
--profile:breakpt | 启用基于断点的分析。 | 节 3.3.6 节 4.17.1 |
|
--speculate_loads=n | -mh | 指定推测加载字节计数阈值。允许对具有分界地址范围的加载进行推测执行。 | 节 4.6.3.1 |
--speculate_unknown_loads | 允许对具有无限地址的加载进行推测执行。 | 节 3.3.4 | |
--use_const_for_alias_analysis | -ox | 使用常量来消除指针的歧义。 | 节 3.3.4 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--entry_hook[=name] | 启用入口挂钩。 | 节 3.16 | |
--entry_parm={none|name| address} |
将函数的参数指定给 --entry_hook 选项。 | 节 3.16 | |
--exit_hook[=name] | 启用出口挂钩。 | 节 3.16 | |
--exit_parm={none|name|address} | 将函数的参数指定给 --exit_hook 选项。 | 节 3.16 | |
--remove_hooks_when_inlining | 删除自动内联函数的入口/出口挂钩。 | 节 3.16 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--analyze={codecov|callgraph} | 从配置文件数据生成分析信息。 | 节 4.11.4.2 | |
--analyze_only | 仅生成分析。 | 节 4.11.4.2 | |
--gen_profile_info | 生成检测代码以收集配置文件信息。 | 节 4.10.1.3 | |
--use_profile_info=file1[, file2,...] | 指定配置文件信息文件。 | 节 4.10.1.3 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--keep_asm | -k | 保留汇编语言 (.asm) 文件。 | 节 3.3.12 |
--asm_listing | -al | 生成汇编列表文件。 | 节 3.3.12 |
--c_src_interlist | -ss | 交叉列出 C 源代码和汇编语句。 | 节 3.13 节 4.16 |
--src_interlist | -s | 交叉列出优化器注释(如果可用)和汇编源语句;否则交叉列出 C 语言和汇编源语句。 | 节 3.3.2 |
--asm_cross_reference_listing | -ax | 生成交叉引用文件。 | 节 3.3.12 |
--asm_define=name[=def] | -ad | 设置 name 符号。 | 节 3.3.12 |
--asm_dependency | -apd | 执行预处理;仅列出程序集依赖项。 | 节 3.3.12 |
--asm_includes | -api | 执行预处理;仅列出包含的 #include 文件。 | 节 3.3.12 |
--asm_undefine=name | -au | 不对预定义的常量 name进行定义。 | 节 3.3.12 |
--include_file=filename | -ahi | 包含汇编模块的指定文件。 | 节 3.3.12 |
--no_const_clink | 停止为常量全局数组生成 .clink 指令。 | 节 3.3.3 | |
--strip_coff_underscore | 帮助将手工编码的汇编从 COFF 过渡到 EABI。 | 节 3.3.12 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--ap_file=filename | -fl | 不管其扩展名为何,都将 filename 标识为线性汇编源文件。默认情况下,编译器和汇编优化器将 .sa 文件视为线性汇编源文件。 | 节 3.3.8 |
--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 |
--list_directory=directory | -ff | 指定汇编列表文件和交叉引用列表文件目录。默认情况下,编译器使用目标文件目录。 | 节 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 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--ap_extension=[.]extension | -el | 设置线性汇编源文件的默认扩展名。 | 节 3.3.10 |
--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 |