foo.o, lib.o for RISC-V)。每個 object file 包含文本段(Text Segment)、數據段(Data Segment)、符號表、重定位表等資訊。a.out for RISC-V)。beq、bne、jal、auipc/addi):這類地址不需要重定位,因為這些指令使用與當前 PC 相對的地址。jal 或 auipc/jalr):這些引用需要重定位,因為組譯時無法確定外部函數的地址。lw、sw、lui/addi):這些數據段在組合時會被重新安置,因此也需要重定位。jal 指令。lui、addi 和 auipc/jalr 當跳轉到外部時也需要重定位。0x10000 開始。printf)。確定絕對地址後,Linker 會填入相應的機器碼。