链接器在处理每个模块(是库还是目标文件)时,会尝试解析每个未定义的符号,同时可能将其添加到未定义的符号列表中。当到达模块列表的末尾时,它要么解决了所有未定义的符号并成功,要么报告了未定义的符号。
就您而言,当它处理librt时,它没有未定义的符号。处理过程导致clock_gettime是未定义的符号。gcc不会返回并在librt中查找未定义的符号。
因此,您应该始终先获取代码,再获取库,再获取平台提供的库。
希望这可以帮助。

链接器在处理每个模块(是库还是目标文件)时,会尝试解析每个未定义的符号,同时可能将其添加到未定义的符号列表中。当到达模块列表的末尾时,它要么解决了所有未定义的符号并成功,要么报告了未定义的符号。
就您而言,当它处理librt时,它没有未定义的符号。处理过程导致clock_gettime是未定义的符号。gcc不会返回并在librt中查找未定义的符号。
因此,您应该始终先获取代码,再获取库,再获取平台提供的库。
希望这可以帮助。