Ich versuche Funktionen in Assembler-Sprache zu machen und sie in einer dynamischen Bibliothek setzen, damit ich mit .S mit diesem Befehl erstellen .o:
nasm -f elf64 hello.S -o hello.o
aber wenn ich möchte, dass die erstellen lib mit gcc:
gcc -fPIC -shared hello.o -o libasm.so
und es zeigt mir diesen Fehler:
/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
Compile Fehler: Verlagerung R_X86_64_PC32 gegen undefiniertes Symbol
6
A
Antwort
4
Von 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.
so statt
; ...
call printf
Verwendung
; ...
call printf WRT ..plt
und kompilieren und verknüpfen wie normal.
Verwandte Themen
- 1. Linkerfehler „Relocation R_X86_64_PC32 gegen undefiniertes Symbol“ trotz Compilation mit -fPIC
- 2. undefiniertes Symbol: PyUnicodeUCS2_AsLatin1String
- 3. undefiniertes Symbol: mysql_options Problem
- 4. Umzug R_X86_64_32 gegen ein lokales Symbol 'Fehler
- 5. Python 2 Bindings Net-SNMP Fehler - undefiniertes Symbol: netsnmp-memdup
- 6. EXPORT_SYMBOL im Kernelmodul | undefiniertes Symbol während insmod
- 7. Undefiniertes Symbol bei Verwendung von Keil IDE
- 8. ImportError: [Bibliotheksname] .so: undefiniertes Symbol: [Funktionsname]
- 9. Java-ODBC-Datenquelle (undefiniertes Symbol: SQLAllocEnv)
- 10. Compile Fehler in SQL-Prozedur
- 11. Tensorflow Installation: Import auf sklearn - undefiniertes Symbol: PyFPE_jbuf
- 12. Compile Fehler: `fatale Fehler: gfc_todo:`
- 13. Compile Telegramm Quellcode Fehler
- 14. Compile Fehler mit beta6
- 15. statische Verlagerung über c
- 16. Aufruf von Haskell aus Java, dynamischer Verknüpfungsfehler Verlagerung
- 17. Numpy schlägt mit Python-dbg fehl (undefiniertes Symbol: Py_InitModule4_64)
- 18. Undefiniertes Symbol: SSLv3_method - .../openssl.so mit Ruby und ArchLinux
- 19. Bereitstellung der Rails-App: pg_ext.so: Undefiniertes Symbol: rb_thread_select
- 20. Datei erstellen Linkproblem Undefiniertes Symbol für Architektur x86_64
- 21. Errichten-Automatisierung - sbt: Compile/Test gegen mehrere Abhängigkeiten
- 22. C# CS0079 Ereignisbehandlung Compile Fehler
- 23. Compile Fehler mit boost :: concept_check
- 24. Compile Fehler: Argument nicht optional
- 25. Rails Compile Fehler für form_for
- 26. versuchen, ein Modul zu importieren: undefiniertes Symbol: PyUnicodeUCS4_DecodeUTF8
- 27. ffmpeg3 H.264 codiert, das Protokoll sagt undefiniertes Symbol: x264_encoder_open_148
- 28. Undefiniertes Symbol beim Aufruf von pam_start von js-ctypes
- 29. Dynamische Verlagerung von Code Abschnitt
- 30. VBA compile Fehler: unerwarteter Fehler 35010
Siehe http://www.nasm.us/xdoc/2.10rc8/html/nasmdoc9.html#section-9.2.5 (_Calling-Prozeduren außerhalb der Bibliothek_) – Michael