首页 > 解决方案 > 将目标文件与标准库链接的问题

问题描述

好吧,我用nasmtest.otest.s. 当我然后运行时gcc test.o,它给了我错误消息

/usr/bin/ld: test.o: 重定位 R_X86_64_PC32 对符号 `puts@@GLIBC_2.2.5' 在制作 PIE 对象时不能使用;使用 -fPIE /usr/bin/ld 重新编译:最终链接失败:错误值 collect2:错误:ld 返回 1 退出状态

test.s:
    global main
    extern puts

    section .text
main:
    mov rdi, message
    call    puts
    ret
message:
    db  "Hello World", 0

此错误消息是什么意思以及如何解决?

此外,在这种情况下,我使用gcc将我的目标文件与标准库链接,但我如何使用它ld来完成相同的工作?

我正在运行Ubuntu 20.04 LTS

标签: assemblygcclinkerx86-64position-independent-code

解决方案


推荐阅读