relocation R_X86_64_32S against `.data‘ can not be used when making a PIE object; recompile with -fP
生活随笔
收集整理的这篇文章主要介绍了
relocation R_X86_64_32S against `.data‘ can not be used when making a PIE object; recompile with -fP
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
linux下编译汇编语言报错:
relocation R_X86_64_32S against `.data' can not be used when making a PIE object; recompile with -fPIE代码如下:
test.asm
global mainmain:mov ebx, 1mov ecx, 2add ebx, ecxmov [sui_bian_xie], ebxmov eax, [sui_bian_xie]retsection .data sui_bian_xie dw 0 dontla@dontla-virtual-machine:~/桌面/test$ nasm -f elf64 test.asm -o test.o dontla@dontla-virtual-machine:~/桌面/test$ gcc -m64 test.o -o test /usr/bin/ld: test.o: relocation R_X86_64_32S against `.data' can not be used when making a PIE object; recompile with -fPIE collect2: error: ld returned 1 exit status解决办法:
添加-no-pie指令
结果:
参考文章:relocation R_X86_64_32S against `.data’ can not be used when making a shared object; recompile with -fPIC with gcc
总结
以上是生活随笔为你收集整理的relocation R_X86_64_32S against `.data‘ can not be used when making a PIE object; recompile with -fP的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Linux进程地址空间与进程内存布局详解
- 下一篇: C语言函数调用过程的汇编分析(停更)