Staram się funkcji w asemblerze i umieścić je w dynamicznej biblioteki więc tworzę .o z .S poleceniem:
nasm -f elf64 hello.S -o hello.o
ale gdy chcę utworzyć lib z gcc:
gcc -fPIC -shared hello.o -o libasm.so
i wyświetla mi ten błąd:
/usr/bin/ld: hello.o: relocation R_X86_64_PC32 against undefined symbol [email protected]@GLIBC_2.2.5 can not be used when making a shared object; recompile with -fPIC
Błąd kompilacji: relokacja R_X86_64_PC32 przed nieokreślonym symbolem
6
A
Odpowiedz
4
Od http://www.nasm.us/xdoc/2.10rc8/html/nasmdoc9.html#section-9.2.5:
To call an external routine, you must use another special PIC relocation type, WRT ..plt. This is much easier than the GOT-based ones: you simply replace calls such as CALL printf with the PLT-relative version CALL printf WRT ..plt.
więc zamiast
; ...
call printf
użycie
; ...
call printf WRT ..plt
i skompilować i link jako normalne.
Powiązane problemy
- 1. błąd łącznik „relokacja R_X86_64_PC32 przed nieokreślonym symbolem” pomimo kompilacji z -fPIC
- 2. Cut ciąg przed symbolem PHP
- 3. C++ szablonu błąd kompilacji: Oczekuje podstawowej wyrażenie przed „>” żeton
- 4. błąd składni: brakujące ";" przed identyfikatorem "PVOID64" podczas kompilacji winnt.h
- 5. CGO nierozpoznany relokacja (0x2a) w sekcji `.text”
- 6. Zasób ciągów z symbolem "%"
- 7. błąd kompilacji podczas próby kompilacji qt projekt
- 8. ScalaFX: Błąd kompilacji HelloWorld
- 9. Błąd kompilacji: oczekiwany identyfikator
- 10. Błąd kompilacji unique_ptr
- 11. Błąd kompilacji XCTest.framework
- 12. Błąd kompilacji projektu TeamCity
- 13. Błąd kompilacji Ember
- 14. Błąd kompilacji Scala OptionBuilder
- 15. Błąd kompilacji Haskella Parsetu
- 16. Błąd kompilacji w 'winbase.h'
- 17. CS0433 Błąd kompilacji
- 18. Gtest: testowy błąd kompilacji
- 19. błąd kompilacji Akka http
- 20. Ant Błąd kompilacji - NavUtils
- 21. CUpewnij błąd kompilacji
- 22. Błąd kompilacji Nan
- 23. Błąd kompilacji Xcode
- 24. Błąd kompilacji Typesafe Activator
- 25. Nieaktualny błąd kompilacji
- 26. Dlaczego pojawia się błąd "nazwa_bazy_danych musi być ciągiem lub symbolem"?
- 27. Porównanie DateTimes o nieokreślonym i UTC rodzaju
- 28. jednorożec katalog_pracy z symbolem rzeczywistym
- 29. błąd kompilacji maven: zduplikowane klasy
- 30. typu Array oczekiwano [Błąd kompilacji]
Zobacz http://www.nasm.us/xdoc/2.10rc8/html/nasmdoc9.html#section-9.2.5 (_ Procedury wywoływania poza biblioteką_) – Michael