Sonstiges

Mac Wie vermeide ich 'Undefinierte Symbole für Architektur x86_64'?

Mikezang

zu
Originalplakat
22. Mai 2010
Tokyo, Japan
  • 25.07.2015
Ich habe versucht, für mein altes Lego RCX ein Cross-Compile zu erstellen, ich verwende GCC 3.3.6 und NEWLIB 1.13.
Code: |_+_|
Wenn ich es geschafft habe, bekomme ich schließlich den unten stehenden Fehler, was kann ich tun?
Code: |_+_|

Madd the Sane

zu
8. November 2010


Utah
  • 2. August 2015
Der Linker von OS X kann die angegebene Funktion in allem, was er zu verknüpfen versucht, nicht finden. Der Grund dafür kann ein fehlendes Präprozessormakro sein oder der kompilierte Code und/oder die Bibliothek werden nicht verlinkt.

Mikezang

zu
Originalplakat
22. Mai 2010
Tokyo, Japan
  • 4. August 2015
Madd the Sane sagte: Was passiert ist, dass der Linker von OS X die angegebene Funktion in allem, was er zu verknüpfen versucht, nicht finden kann. Der Grund dafür kann ein fehlendes Präprozessormakro sein oder der kompilierte Code und/oder die Bibliothek werden nicht verlinkt.
Danke für deine Nachricht! kannst du mir sagen, wie ich dieses Problem lösen kann? C

cqexbed

4. Juni 2009
Deutschland
  • 4. August 2015
Mikezang sagte: Danke für deine Nachricht! kannst du mir sagen, wie ich dieses Problem lösen kann?

Ich vermute hier nur, aber ich denke, Sie müssen möglicherweise gperf installiert haben. Beginnen Sie dann mit dem Bauen von Grund auf neu – also make distclean oder ähnliches – oder löschen Sie einfach Ihr Verzeichnis und erweitern Sie die tar-Datei wieder.

Cromulent

2. Okt. 2006
Das Land der Hoffnung und des Ruhms
  • 4. August 2015
Mikezang sagte: Danke für deine Nachricht! kannst du mir sagen, wie ich dieses Problem lösen kann?

Anscheinend verwenden Sie den falschen GCC.

Geben Sie entweder den vollständigen Pfad zu GCC 3.3.6 ein oder fügen Sie ihn dem Pfad mit einem anderen Namen als GCC hinzu (da Apple bereits einen GCC-Befehl bereitstellt, der tatsächlich clang ausführt). Aus diesem Grund haben Sie folgenden Fehler:

ld: Symbol(e) für Architektur x86_64 nicht gefunden

clang: error: Linker-Befehl mit Exitcode 1 fehlgeschlagen (verwenden Sie -v, um den Aufruf anzuzeigen)

Sie führen tatsächlich Clang aus, das zu x86_64 kompiliert wird. Sie müssen den kompilierten GCC ausführen. Normalerweise geben Sie beim Kompilieren von GCC als Cross-Compiler einen anderen Namen als GCC (das ist eine der Konfigurationsskriptoptionen für GCC beim Kompilieren), damit Sie den Unterschied zwischen dem vom System bereitgestellten GCC und Ihrem eigenen GCC-Kreuz erkennen können Compiler.

Mikezang

zu
Originalplakat
22. Mai 2010
Tokyo, Japan
  • 4. August 2015
cqexbesd sagte: Ich vermute hier nur, aber ich denke, Sie müssen möglicherweise gperf installiert haben. Beginnen Sie dann mit dem Bauen von Grund auf neu – also make distclean oder ähnliches – oder löschen Sie einfach Ihr Verzeichnis und erweitern Sie die tar-Datei wieder.
Groß! Gestern Abend habe ich diese Seite gefunden http://stackoverflow.com/questions/3040801/error-compiling-gcc-undefined-reference-to-libc-name-p , der Fehler ist weg, nachdem Sie ihm gefolgt sind.