ZHCUAU3J January 2018 – March 2024
当 --unused_section_elimination 为 on 时,ELF 链接器不会在最终链接中包含可执行文件解析引用时不需要用到的段。--retain 选项会让链接器保留原本不会保留的段的列表。此选项支持通配符“*”和“?”。使用通配符时,参数两边应加上引号。此选项的语法为:
--retain=sym_or_scn_spec
--retain 选项采取以下形式之一:
指定该符号格式会保留定义 symbol_spec 的段。例如,以下代码会保留用于定义以 init 开头的符号的段:
--retain='init*'
您无法指定 --retain='*'。
指定该文件格式会保留与 file_spec 匹配的文件中的一个或多个 scn_spec 匹配的段。例如,以下代码会保留所有输入文件中的 .intvec 段:
--retain='*(.int*)'
您可以指定 --retain='*(*)' 来保留所有输入文件中的所有段。不过,这不能阻止库成员中的段被优化掉。
指定该归档格式会保留以下位置与一个或多个 scn_spec 匹配的段:与 ar_spec 匹配的归档文件中与一个或多个 mem_spec 匹配的成员内。例如,以下代码会保留 rts7100_le.lib 库中 printf.c.obj 内的 .text 段:
--retain=rts7100_le.lib<printf.c.obj>(.text)
如果使用 --library 选项指定了库 (--library=rts7100_le.lib),则会使用库搜索路径来搜索该库。您无法指定 '*<*>(*)'。