2
我絕對是綠色的,但是在課堂上,老師給我們提供了他爲我們寫的文件,只是爲了運行它而且它運行良好,但是當我試着在家裏做(我用Linux VirtualBox上)和使用:「對於`.bss'重定位R_X86_64_32S不能用於製作共享對象」
nasm -f elf64 hello.asm -o hello.o
gcc hello.o -o hello
我得到一個錯誤「搬遷R_X86_64_32S對`的.bss'創建共享目標時,不能使用;用-fPIC重新編譯「。有人可以請解釋做什麼使它工作?
global main
extern printf
section .data
napis: db ' Hello world! - po raz %ld',10,0
liczba_iteracji: equ 5
section .bss
licznik: resb 1
section .text
main:
push rbp
mov rbp,rsp
mov byte [licznik],0
petla: ;naiwna!
inc byte [licznik]
mov rdi, qword napis
mov rsi, qword [licznik]
mov rax, 0
call printf
cmp byte [licznik],liczba_iteracji
jnz petla
mov rsp,rbp
pop rbp
mov rax,1 ;SYS_EXIT
mov rbx,0
int 80h
可能重複[什麼R \ _X86 \ _64 \ _32S和R \ _X86 \ _64 \ _64重定位是什麼意思?](http://stackoverflow.com/questions/6093547/what-do-r-x86-64 -32s-and-r-x86-64-64-relocation-mean) –
關於使用的答案 gcc -shared -fPIC foo.c -o libfoo.so不能解決我的問題 – overflow