ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
选项控制编译器的运行。本部分说明选项约定和选项摘要表。此外,还提供常用选项(包括用于类型检查和汇编的选项)的详细说明。
如需查看选项的帮助屏幕摘要,请在命令行上输入不带参数的 armcl。
下述原则适用于编译器选项:
可以使用 TI_ARM_C_OPTION 环境变量为编译器定义默认选项。有关环境变量的详细说明,请参阅节 2.4.1。
表 2-1 到表 2-29 汇总了所有选项(包括链接选项)。使用表中的参考资料以获取更完整的选项说明。
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--silicon_version={ 4 | 5e | 6 | 6M0 | 7A8 | 7M3 | 7M4 | 7R4 | 7R5 } | -mv | 选择处理器版本:ARM V4 (ARM7)、ARM V5e (ARM9E)、ARM V6 (ARM11)、ARM V6M0 (Cortex-M0)、ARM V7A8 (Cortex-A8)、ARM V7M3 (Cortex-M3)、ARM V7M4 (Cortex-M4)、ARM V7R4 (Cortex-R4) 或 ARM V7R5 (Cortex-R5)。默认为 ARM V4。 | 节 2.3.4 |
--code_state={ 16 | 32 } | 指定 ARM 编译模式。 | 节 2.3.4 | |
--float_support={ vfpv2 | vfpv3 | vfpv3d16 | fpv4spd16 | none ) | 生成矢量浮点 (VFP) 协处理器指令。仅当目标硬件提供这一功能时才使用此选项。 | 节 2.14 | |
--little_endian 或 --endian={ big | little } | -me | 指定小端代码。默认为 big-endian。 | 节 2.3.4 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--opt_level=off | 禁用所有优化。 | 节 3.1 | |
--opt_level=n | -On | 级别 0 (-O0) 仅优化寄存器使用情况。 级别 1 (-O1) 使用级别 0 优化并在本地进行优化。 级别 2 (-O2) 使用级别 1 优化并在本地进行优化。 级别 3 (-O3) 使用级别 2 优化并对文件进行优化(如果未使用选项,则为默认值)。 级别 4 (-O4) 使用级别 3 优化并执行链接时间优化。 |
节 3.1、节 3.3、节 3.6 |
--opt_for_speed[=n] | -mf | 控制大小和速度之间的权衡(0-5 范围)。如果此选项未指定 n,则默认值为 4。如果未指定此选项,则默认设置为 1。 | 节 3.2 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--auto_inline=[size] | -oi | 设置自动内联大小(仅限 --opt_level=3)。如果未指定 size,则默认值为 1。 | 节 3.5 |
--call_assumptions=n | -opn | 级别 0 (-op0) 指定了模块包含从提供给编译器的源代码外部调用或修改的函数和变量。 级别 1 (-op1) 指定了模块包含从提供给编译器的源代码外部修改的变量,但不使用从源代码外部调用的函数。 级别 2 (-op2) 指定了模块不包含从提供给编译器的源代码外部调用或修改的函数或变量(默认值)。 级别 3 (-op3) 指定了模块包含从提供给编译器的源代码外部调用的函数,但不使用从源代码外部修改的变量。 |
节 3.4.1 |
--disable_inlining | 防止发生任何内联。 | 节 2.11 | |
--fp_mode={relaxed|strict} | 启用或禁用宽松浮点模式。 | 节 2.3.3 | |
--fp_reassoc={on|off} | 启用或禁用浮点算术的重新关联。 | 节 2.3.3 | |
--gen_opt_info=n | -onn | 级别 0 (-on0) 禁用优化信息文件。 级别 1 (-on2) 生成优化信息文件。 级别 2 (-on2) 生成详细的优化信息文件。 |
节 3.3.1 |
--optimizer_interlist | -os | 交叉列出优化器注释与汇编语句。 | 节 3.11 |
--program_level_compile | -pm | 组合源文件以执行程序级优化。 | 节 3.4 |
--sat_reassoc={on|off} | 启用或禁用饱和算术的重新关联。默认为 --sat_reassoc=off。 | 节 2.3.3 | |
--aliased_variables | -ma | 表示使用了特定的别名技术。 | 节 3.9 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--symdebug:dwarf | -g | 默认行为。启用符号调试。调试信息的生成不会影响优化。因此,默认情况下会生成调试信息。 | 节 2.3.5 节 3.12 |
--symdebug:dwarf_version=2|3|4 | 指定 DWARF 格式版本。 | 节 2.3.5 | |
--symdebug:none | 禁用所有符号调试。 | 节 2.3.5 节 3.12 |
|
--symdebug:skeletal | (已弃用;无效。) |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--include_path=directory | -I |
将指定的目录添加到 #include 搜索路径。 | 节 2.5.2.1 |
--preinclude=filename | 在编译开始时包含 filename。 | 节 2.3.3 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--advice:power[={all|none|rulespec}] | 启用检查指定的 ULP Advisor 规则。(默认为 all。) | 节 2.3.3 | |
--advice:power_severity={error| warning|remark|suppress} |
设置 ULP Advisor 规则的诊断严重程度。 | 节 2.3.3 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--compile_only | -c | 禁用链接(否定 --run_linker)。 | 节 4.1.3 |
--help | -h | 打印(在标准输出设备上)编译器理解的选项的说明。 | 节 2.3.2 |
--run_linker | -z | 导致从编译器命令行调用链接器。 | 节 2.3.2 |
--skip_assembler | -n | 编译 C/C++ 源文件,从而生成汇编语言输出文件。汇编器不会运行,也不会生成目标文件。 | 节 2.3.2 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--c89 | 根据 ISO C89 标准处理 C 文件。 | 节 5.16 | |
--c99 | 根据 ISO C99 标准处理 C 文件。 | 节 5.16 | |
--c11 | 根据 ISO C11 标准处理 C 文件。 | 节 5.16 | |
--c++14 | 根据 ISO C++14 标准处理 C++ 文件。 已弃用 --c++03 选项。 |
节 5.16 | |
--cpp_default | -fg | 将所有带有 C 扩展名的源文件作为 C++ 源文件处理。 | 节 2.3.7 |
--enum_type={int|packed} | 选择是否使用紧凑整数类型来存储小型枚举类型。 | 节 2.3.4 | |
--exceptions | 启用 C++ 异常处理。 | 节 5.8 | |
--extern_c_can_throw | 允许外部 C 函数传播异常。 | -- | |
--float_operations_allowed ={none|all|32|64} |
限制允许的浮点运算类型。 | 节 2.3.3 | |
--gen_cross_reference_listing | -px | 生成交叉引用列表文件 (.crl)。 | 节 2.9 |
--pending_instantiations=# | 指定在任何给定时间可能正在进行的模板实例化的数量。使用 0 来指定无限数量。 | 节 2.3.4 | |
--plain_char={signed|unsigned} | -mc | 指定如何处理普通字符,默认为无符号。 | 节 2.3.4 |
--printf_support={nofloat|full| minimal} |
支持小型且版本受限的 printf 函数系列(sprintf、fprintf 等)和 scanf 函数系列(sscanf、fscanf 等)运行时支持函数的支持。 | 节 2.3.3 | |
--relaxed_ansi | -pr | 启用宽松模式;忽略严格的 ISO 违规。默认设置为 on。要禁用此模式,请使用 --strict_ansi 选项。 | 节 5.16.3 |
--rtti | -rtti | 启用 C++ 运行时类型信息 (RTTI)。 | –- |
--strict_ansi | -ps | 启用严格的 ANSI/ISO 模式(适用于 C/C++,不适用于 K&R C)。在此模式下,禁用与 ANSI/ISO C/C++ 冲突的语言扩展。在严格的 ANSI/ISO 模式下,大多数 ANSI/ISO 违规都会报告为错误。被视为酌情处理的违规行为可能会报告为警告。 | 节 5.16.3 |
--wchar_t={32|16} | 设置 C/C++ 类型 wchar_t 的大小。默认为 16 位。 | 节 2.3.4 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--preproc_dependency[=filename] | -ppd | 仅执行预处理,但不写入预处理的输出,而是写入适合于输入到标准 make 实用程序的依赖行列表。 | 节 2.5.8 |
--preproc_includes[=filename] | -ppi | 仅执行预处理,但不写入预处理的输出,而是写入 #include 指令中包含的文件列表。 | 节 2.5.9 |
--preproc_macros[=filename] | -ppm | 仅执行预处理。将预定义和用户定义的宏列表写入与输入同名但扩展名为 .pp 的文件。 | 节 2.5.10 |
--preproc_only | -ppo | 仅执行预处理。将预处理的输出写入与输入同名但扩展名为 .pp 的文件。 | 节 2.5.4 |
--preproc_with_comment | -ppc | 仅执行预处理。将预处理的输出(保留注释)写入与输入同名但扩展名为 .pp 的文件。 | 节 2.5.6 |
--preproc_with_compile | -ppa | 使用任何通常会禁用编译的 -pp<x> 选项在预处理后继续编译。 | 节 2.5.5 |
--preproc_with_line | -ppl | 仅执行预处理。将带有行控制信息(#line 指令)的预处理的输出写入与输入同名但扩展名为 .pp 的文件。 | 节 2.5.7 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--compiler_revision | 打印出编译器发布版本并退出。 | -- | |
--diag_error=num | -pdse | 将 num 标识的诊断分类为错误。 | 节 2.7.1 |
--diag_remark=num | -pdsr | 将 num 标识的诊断分类为备注。 | 节 2.7.1 |
--diag_suppress=num | -pds | 抑制 num 标识的诊断。 | 节 2.7.1 |
--diag_warning=num | -pdsw | 将 num 标识的诊断分类为警告。 | 节 2.7.1 |
--diag_wrap={on|off} | 使诊断消息换行(默认为 on)。请注意,此命令行选项不能在 Code Composer Studio IDE 中使用。 | ||
--display_error_number | -pden | 显示诊断的标识符及其文本。请注意,此命令行选项不能在 Code Composer Studio IDE 中使用。 | 节 2.7.1 |
--emit_warnings_as_errors | -pdew | 将警告视为错误。 | 节 2.7.1 |
--gen_func_info_listing | 生成用户信息文件 (.aux)。 | 节 2.3.2 | |
--issue_remarks | -pdr | 发出备注(非严重警告)。 | 节 2.7.1 |
--no_warnings | -pdw | 抑制诊断警告(仍会发出错误)。 | 节 2.7.1 |
--quiet | -q | 抑制进度消息(静默)。 | -- |
--set_error_limit=num | -pdel | 将错误限制设置为 num。在在错误达到这个数量后,编译器放弃编译。(默认为 100。) | 节 2.7.1 |
--super_quiet | 超级静默模式。 | -- | |
--tool_version | -version | 显示每个工具的版本号。 | -- |
--verbose | 显示横幅和函数进度信息。 | -- | |
--verbose_diagnostics | -pdv | 提供详细的诊断消息,以自动换行的方式显示原始源代码。请注意,此命令行选项不能在 Code Composer Studio IDE 中使用。 | 节 2.7.1 |
--write_diagnostics_file | 生成诊断消息信息文件。编译器唯一选项。请注意,此命令行选项不能在 Code Composer Studio IDE 中使用。 | 节 2.7.1 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--gen_preprocessor_listing | -pl | 生成原始列表文件 (.rl)。 | 节 2.10 |
--section_sizes={on|off} | 生成段大小信息,包括含可执行代码和常量、常量或初始化数据(全局和静态变量)以及未初始化数据的段的大小。(如果此选项未包含在命令行中,则默认为 off。如果使用此选项但未指定值,则默认为 on。) | 节 2.7.1 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--common={on|off} | 默认为 on。设置为 on 时,未初始化的文件范围变量作为通用符号发出。设置为 off 时,不会创建通用符号。 | 节 2.3.4 | |
--embedded_constants={on|off} | 控制编译器是否在函数中嵌入常量。 | 节 2.3.4 | |
--gen_data_subsections={on|off} | 将所有聚合数据(数组、结构和联合体)放入子段中。这使得链接器可以更好地控制在最终链接步骤期间删除未使用的数据。有关默认设置的详细信息,请参阅右侧的链接。 | 节 4.2.2 | |
--global_register={r5|r6|r9} | -rr | 禁止编译器使用 rx=[5,6,9]。 | 节 2.3.4 |
-neon | 支持Cortex-A8 Neon SIMD 指令集。 | 节 2.3.4 | |
--ramfunc={on|off} | 如果设置为 on,则指定所有函数都应放置在 RAM 中的 .TI.ramfunc 段中。 | 节 2.3.4 | |
--unaligned_access={on|off} | 控制未对齐访问的生成。 | 节 2.3.4 | |
--use_dead_funcs_list [=fname] | 将文件中列出的每个函数放在单独段中。 | 节 2.3.4 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--entry_hook[=name] | 启用入口挂钩。 | 节 2.15 | |
--entry_parm={none|name| address} |
将函数的参数指定给 --entry_hook 选项。 | 节 2.15 | |
--exit_hook[=name] | 启用出口挂钩。 | 节 2.15 | |
--exit_parm={none|name|address} | 将函数的参数指定给 --exit_hook 选项。 | 节 2.15 | |
--remove_hooks_when_inlining | 删除自动内联函数的入口/出口挂钩。 | 节 2.15 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--analyze=codecov | 从配置文件数据生成分析信息。 | 节 3.8.2.2 | |
--analyze_only | 仅生成分析。 | 节 3.8.2.2 | |
--gen_profile_info | 生成检测代码以收集配置文件信息。 | 节 3.7.1.3 | |
--use_profile_info=file1[, file2,...] | 指定配置文件信息文件。 | 节 3.7.1.3 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--keep_asm | -k | 保留汇编语言 (.asm) 文件。 | 节 2.3.11 |
--asm_listing | -al | 生成汇编列表文件。 | 节 2.3.11 |
--c_src_interlist | -ss | 交叉列出 C 源代码和汇编语句。 | 节 2.12 节 3.11 |
--src_interlist | -s | 交叉列出优化器注释(如果可用)和汇编源语句;否则交叉列出 C 语言和汇编源语句。 | 节 2.3.2 |
--absolute_listing | -aa | 启用绝对列表。 | 节 2.3.11 |
--asm_cross_reference_listing | -ax | 生成交叉引用文件。 | 节 2.3.11 |
--asm_define=name[=def] | -ad | 设置 name 符号。 | 节 2.3.11 |
--asm_dependency | -apd | 执行预处理;仅列出程序集依赖项。 | 节 2.3.11 |
--asm_includes | -api | 执行预处理;仅列出包含的 #include 文件。 | 节 2.3.11 |
--asm_undefine=name | -au | 不对预定义的常量 name进行定义。 | 节 2.3.11 |
--code_state={16|32} | 开始将指令汇编为 16 位或 32 位指令。 | 节 2.3.11 | |
--include_file=filename | -ahi | 包含汇编模块的指定文件。 | 节 2.3.11 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--asm_file=filename | -fa | 不管其扩展名为何,都将 filename 标识为汇编源文件。默认情况下,编译器和汇编器将 .asm 文件视为汇编源文件。 | 节 2.3.7 |
--c_file=filename | -fc | 不管其扩展名为何,都将 filename 标识为 C 源文件。默认情况下,编译器将 .c 文件视为 C 源文件。 | 节 2.3.7 |
--cpp_file=filename | -fp | 不管其扩展名为何,都将 filename 标识为 C++ 文件。默认情况下,编译器将 .C、.cpp、.cc 和 .cxx 文件视为 C++ 文件。 | 节 2.3.7 |
--obj_file=filename | -fo | 不管其扩展名为何,都将 filename 标识为目标代码文件。默认情况下,编译器和链接器将 .obj 文件视为目标代码文件,包括 *.c.obj 和 *.cpp.obj 文件。 | 节 2.3.7 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--abs_directory=directory | -fb | 指定绝对列表文件目录。默认情况下,编译器使用目标文件目录。 | 节 2.3.10 |
--asm_directory=directory | -fs | 指定汇编文件目录。默认情况下,编译器使用当前目录。 | 节 2.3.10 |
--list_directory=directory | -ff | 指定汇编列表文件和交叉引用列表文件目录。默认情况下,编译器使用目标文件目录。 | 节 2.3.10 |
--obj_directory=directory | -fr | 指定目标文件目录。默认情况下,编译器使用当前目录。 | 节 2.3.10 |
--output_file=filename | -fe | 指定编译输出文件名;可以覆盖 --obj_directory。 | 节 2.3.10 |
--pp_directory=dir | 指定预处理器文件目录。默认情况下,编译器使用当前目录。 | 节 2.3.10 | |
--temp_directory=directory | -ft | 指定临时文件目录。默认情况下,编译器使用当前目录。 | 节 2.3.10 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--asm_extension=[.]extension | -ea | 设置汇编源文件的默认扩展名。 | 节 2.3.9 |
--c_extension=[.]extension | -ec | 设置 C 源文件的默认扩展名。 | 节 2.3.9 |
--cpp_extension=[.]extension | -ep | 设置 C++ 源文件的默认扩展名。 | 节 2.3.9 |
--listing_extension=[.]extension | -es | 设置列表文件的默认扩展名。 | 节 2.3.9 |
--obj_extension=[.]extension | -eo | 设置目标文件的默认扩展名。 | 节 2.3.9 |
选项 | 别名 | 效果 | 段 |
---|---|---|---|
--cmd_file=filename | -@ | 将文件内容解释为命令行的扩展。可以使用多个 -@ 实例。 | 节 2.3.2 |