尝试链接nasm对象文件时链接失败

时间:2017-03-28 06:12:20

标签: gcc x86 nasm x86-64 ld

我有这个简单的程序来计算浮点数的平方根

global main
extern printf
section .data
        float_t db '%f',0x0
        val dq 123.45
        res dq 0x0
section .text
main:
        fld qword[val]
        fsqrt
        fst qword[res]
        xor rax,rax
        mov rdi, float_t
        mov rsi, [res]
        call printf
        mov rax,60
        mov rdi,0
        syscall

我是通过

组装的
$  nasm -f elf64 fpu.asm -o fpu.o

然后尝试用gcc链接到glibc

$  gcc fpu.o -o fpu

海湾合作委员会抱怨:

/usr/bin/ld: fpu.o: relocation R_X86_64_32S against `.data' can not be used
when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status

1 个答案:

答案 0 :(得分:0)

如迈克尔·帕奇(Michael Petch)在上述评论中所述,

  

我希望使用await page.waitForSelector('#ldpPhotoGallery'); const getImgSrc = await page.$eval('#ldpPhotoGallery', img => img.getAttribute('data-src')); console.log(getImgSrc); 进行构建

我遇到了同样的问题,并且解决了这个问题。