ZHCU947E June 2015 – January 2023
可通过以下两种方式之一构建输出段:
方法 1 | 作为 SECTIONS 指令定义的结果 |
方法 2 | 通过将同名的输入段组合成一个未在 SECTIONS 指令中定义的输出段 |
如果作为 SECTIONS 指令的结果构成输出段,则段的内容完全由此定义确定。(如需查看如何定义输出段内容的示例,请参阅GUID-6E6B4A54-DD1F-4CA9-92C1-21E822F3090C.html#GUID-6E6B4A54-DD1F-4CA9-92C1-21E822F3090C。)
如果输出段是通过组合未由 SECTIONS 指令指定的输入段构成的,则链接器会将所有同名的此类输入段组合到该名称的输出段中。例如,假设文件 f1.c.obj 和 f2.c.obj 都包含名为 Vectors 的指定段,并且 SECTIONS 指令没有为它们定义输出段。链接器会将输入文件中的两个 Vectors 段组合成名为 Vectors 的单个输出段,将这个输出段分配到存储器中,并将其包含在输出文件中。
默认情况下,链接器在创建未在 SECTIONS 指令中定义的输出段时不显示消息。使用 --warn_sections 链接器选项(请参阅GUID-23C7BAF1-EBD2-4A3B-90CD-FC415FC595A3.html#GUID-23C7BAF1-EBD2-4A3B-90CD-FC415FC595A3)可以使链接器在创建新的输出段时显示消息。
链接器确定所有输出段的组成方式后,必须将它们分配到配置的存储器中。MEMORY 指令可以指定配置存储器的哪些部分。如果没有 MEMORY 指令,链接器将使用默认配置,如TMS320C6000 器件的默认分配中所示。(有关配置存储器的更多信息,请参阅GUID-26CC363C-9AAF-4A90-A4B8-BBE51D4B7A7B.html#GUID-26CC363C-9AAF-4A90-A4B8-BBE51D4B7A7B。)