该-u选项仅在.a涉及archive()库时可能相关(也可能是有效的.so库--as-needed).
与.o链接命令行上的单个目标文件()(它们按照它们出现的顺序链接)不同,归档库中的目标文件仅在它们在链接中出现的位置满足一个或多个未定义的符号引用时才链接命令行顺序.一旦.o归档文件中的文件被拉入链接,该过程将以递归方式重复,因此,如果它引入了更多未定义的符号引用,则将引入来自相同(或更高版本)归档的其他目标文件以满足它们.
使用-u允许您将特定符号(以及间接地,它所定义的目标文件的所有依赖关系)引入链接.当然,您可以直接将所有.o文件放在命令行上,而无需使用任何归档库,但是通过使用库可以避免链接未使用的目标文件(如果代码的大部分可能未使用,这取决于构建时间,这尤其有用其他文件中的可配置设置!)同时获得您需要的设置.