【发布时间】:2015-11-02 11:02:43
【问题描述】:
情况
-
环境
Arch Linux x86-64 (4.2.3-1-ARCH)
-
海合会
gcc (GCC) 5.2.0
-
命令
gcc -Wall -g -o asm_printf asm_printf.s -
错误
/usr/bin/ld: /tmp/cct4fa.o: Relocation R_X86_64_32S against '.data' can not be used when making a shared object; recompile with -fPIC /tmp/cct4fa.o:err adding symbols: Bad value collect2: error: ld returned 1 exit status -
代码
.section .data msg: .asciz "Printf In Assembly!!\n" .section .text .globl main main: pushq $msg call printf addq $8 %esp pushq $0 call exit
问题
我尝试使用gcc 使用上面 Command 部分中的命令编译上面 Code 部分中的程序,结果在 Command 部分中出现错误strong>错误部分。
注意我不是编译共享库。
- 这是什么错误?
- 我该如何解决这个问题?
【问题讨论】:
标签: gcc assembly linker elf relocation