使用 ar(1) 生成归档。归档通常由一组可重定位目标文件和一个归档符号表组成。该符号表提供符号定义与提供这些定义的目标文件之间的关联。缺省情况下,链接编辑器有选择地提取归档成员。链接编辑器使用未解析的符号引用从归档中选择完成绑定过程所需的目标文件。也可以显式提取归档的所有成员。
归档成员包含满足暂定 (tentative) 符号定义(目前保存在链接编辑器的内部符号表中)的数据符号定义。例如,FORTRAN COMMON 块定义,它将导致提取定义了相同 DATA 符号的可重定位目标文件。
归档成员包含的某个符号定义与需要隐藏可见性或受保护可见性的一个引用相匹配。请参见Table 12–23。
有选择地提取归档时,除非 –z weakextract 选项有效,否则弱符号引用不会从归档中提取目标文件。有关更多信息,请参见简单解析。
在有选择地提取归档的情况下,链接编辑器会对整个归档进行多遍检查。将根据需要提取可重定位目标文件,以满足链接编辑器内部符号表中累积的符号信息。链接编辑器检查完归档一遍(但未提取任何可重定位目标文件)之后,将处理下一个输入文件。
由于遇到归档时仅从归档中提取需要的可重定位目标文件,因此命令行中归档的位置可能很重要。请参见命令行中归档的位置。