链接器选项可控制链接操作。可以在命令行上或命令文件中使用这些选项。链接器选项必须在前面加连字符 (-)。各选项可以用可选的空格与参数(如果选项带有参数)隔开。
表 8-1 基本选项汇总
| 选项 |
别名 |
说明 |
部分 |
| --run_linker |
-z |
启用链接 |
节 8.3 |
| --output_file |
-o |
为可执行输出模块命名。默认文件名为 a.out。 |
节 8.4.23 |
| --map_file |
-m |
生成输入和输出段(包括空洞)的映射或列表,并将列表放置在 文件名 中。 |
节 8.4.18 |
| --stack_size |
-stack |
将 C 系统栈大小设置为 大小 个字节,并定义全局符号来指定栈大小。默认值 = 1K 字节 |
节 8.4.28 |
| --heap_size |
-heap |
将堆大小(对于 C 中的动态存储器分配)设为 大小 个字节,并定义全局符号来指定栈大小。默认值 = 1K 字节 |
节 8.4.14 |
表 8-2 文件搜索路径选项汇总
| 选项 |
别名 |
说明 |
部分 |
| --library |
-l |
将归档库或链接命令文件名命名为链接器输入 |
节 8.4.16 |
| --disable_auto_rts |
|
禁止自动选择运行时支持库 |
节 8.4.8 |
| --priority |
-priority |
满足由包含该符号定义的第一个库实现的未解析引用 |
节 8.4.16.3 |
| --reread_libs |
-x |
强制重新读取库,以解析反向引用 |
节 8.4.16.3 |
| --search_path |
-i |
在查找默认位置之前,更改库搜索算法以查找用 pathname 命名的目录。此选项必须出现在 --library 选项之前。 |
节 8.4.16.1 |
表 8-4 诊断选项汇总
| 选项 |
别名 |
说明 |
部分 |
| --diag_error |
|
将由num标识的诊断分类为错误 |
节 8.4.7 |
| --diag_remark |
|
将由num 标识的诊断分类为备注 |
节 8.4.7 |
| --diag_suppress |
|
抑制由num标识的诊断 |
节 8.4.7 |
| --diag_warning |
|
将由num标识的诊断分类为警告 |
节 8.4.7 |
| --display_error_number |
|
显示诊断的标识符及其文本 |
节 8.4.7 |
| --emit_references:file[=file] |
|
发出包含段信息的文件。这些信息包括段大小、定义的符号和对符号的引用。 |
节 8.4.7 |
| --emit_warnings_as_errors |
-pdew |
将警告视为错误 |
节 8.4.7 |
| --issue_remarks |
|
发出备注(非严重警告) |
节 8.4.7 |
| --no_demangle |
|
禁止还原诊断中的符号名称 |
节 8.4.20 |
| --no_warnings |
|
抑制警告诊断(仍会发出错误) |
节 8.4.7 |
| --set_error_limit |
|
将错误限制设置为 num。在达到此错误数量后,链接器将放弃链接。(默认为 100。) |
节 8.4.7 |
| --verbose_diagnostics |
|
提供详细的诊断,以换行方式显示原始源代码 |
节 8.4.7 |
| --warn_sections |
-w |
创建未定义的输出段时显示一条消息 |
节 8.4.32 |
表 8-5 链接器输出选项汇总
| 选项 |
别名 |
说明 |
部分 |
| --absolute_exe |
-a |
生成绝对可执行模块。这是默认设置;如果 --absolute_exe 和 --relocatable 均未指定,链接器的行为就像指定了 --absolute_exe 一样。 |
节 8.4.3.1 |
| --ecc={ on | off } |
|
启用由链接器生成的错误校正码 (ECC)。默认关闭。 |
节 8.4.11 节 8.5.9 |
| --ecc:data_error |
|
将指定的错误注入到输出文件中进行测试 |
节 8.4.11 节 8.5.9 |
| --ecc:ecc_error |
|
将指定的错误注入到错误校正码 (ECC) 中进行测试 |
节 8.4.11 节 8.5.9 |
| --mapfile_contents |
|
控制映射文件中包含的信息。 |
节 8.4.19 |
| --relocatable |
-r |
生成不可执行、可重定位的输出模块 |
节 8.4.3.2 |
| --xml_link_info |
|
生成结构良好的 XML 文件,其中包含有关链接结果的详细信息 |
节 8.4.33 |
表 8-6 符号管理选项汇总
| 选项 |
别名 |
说明 |
部分 |
| --entry_point |
-e |
定义一个全局符号,用于指定输出模块的主要入口点 |
节 8.4.12 |
| --globalize |
|
将与模式匹配的符号的符号链接更改为全局型 |
节 8.4.17 |
| --hide |
|
隐藏与模式匹配的全局符号 |
节 8.4.15 |
| --localize |
|
将与模式匹配的符号的符号链接更改为局部型 |
节 8.4.17 |
| --make_global |
-g |
将符号设为全局型(覆盖 -h) |
节 8.4.17.1 |
| --make_static |
-h |
将所有全局符号设为静态型 |
节 8.4.17.1 |
| --no_symtable |
-s |
从输出模块中去除符号表信息和行号条目 |
节 8.4.22 |
| --retain |
|
保留原本应丢弃的段列表 |
节 8.4.26 |
| --scan_libraries |
-scanlibs |
扫描所有库中的重复符号定义 |
节 8.4.27 |
| --symbol_map |
|
将符号引用映射到不同名称的符号定义 |
节 8.4.29 |
| --undef_sym |
-u |
将未解析的外部符号放入输出模块的符号表中 |
节 8.4.31 |
| --unhide |
|
显示(取消隐藏)与 模式 匹配的全局符号 |
节 8.4.15 |
表 8-7 运行时环境选项汇总
| 选项 |
别名 |
说明 |
部分 |
| --arg_size |
--args |
分配可供加载程序传递参数之用的存储器 |
节 8.4.4 |
| --fill_value |
-f |
为输出段内的空洞设置默认填充值;fill_value 是 32 位常数 |
节 8.4.13 |
| --multithread |
|
使 TI 链接器在自动选择 RTS 库或解析对 libc.a 的引用时选择线程安全版 RTS 库,即使所有输入目标文件都不包含由 --multithread 编译器选项放置的 TI 构建属性,也是如此。 |
节 8.4.8 |
| --ram_model |
-cr |
在加载时初始化变量 |
节 8.4.25 |
| --rom_model |
-c |
在运行时自动初始化变量 |
节 8.4.25 |
| --trampolines |
|
生成 far call trampolines;默认开启 |
节 8.4.30 |
表 8-8 链接时优化选项汇总
| 选项 |
别名 |
说明 |
部分 |
| --cinit_compression [=compression_kind] |
|
指定应用于 C 自动初始化数据的压缩类型(默认为 rle) |
节 8.4.5 |
| --compress_dwarf |
|
大力减少输入目标文件中 DWARF 信息的大小 |
节 8.4.6 |
| --copy_compression [=compression_kind] |
|
压缩由链接器复制表复制的数据 |
节 8.4.5 |
| --unused_section_elimination |
消除可执行模块中不需要的段;默认开启 |
节 8.4.9 |
表 8-9 其他选项汇总
| 选项 |
别名 |
说明 |
部分 |
| --linker_help |
-help |
显示有关语法和可用选项的信息 |
– |
| --minimize_trampolines |
|
选择 trampoline 最小化算法(参数可选;算法默认为 postorder) |
节 8.4.30.2 |
| --preferred_order |
|
为函数放置设定优先级 |
节 8.4.24 |
| --trampoline_min_spacing |
|
当 trampoline 预留的间隔比指定的限值更近时,尝试使它们相邻 |
节 8.4.30.3 |
| --zero_init |
|
控制对未初始化的变量的预初始化。默认为 on。如果使用了 --ram_model,则始终为 off。 |
节 8.4.34 |