Ander

Mac Hoe 'Ongedefinieerde symbolen voor architectuur x86_64' te vermijden?

Mikezang

tot
originele poster
22 mei 2010
Tokio, Japan
  • 25 juli 2015
Ik heb geprobeerd een kruiscompilatie te maken voor mijn oude Lego RCX, ik gebruik GCC 3.3.6 en NEWLIB 1.13.
Code: |_+_|
Toen ik het maakte, kreeg ik eindelijk een fout zoals hieronder, wat kan ik doen?
Code: |_+_|

Madd the Sane

tot
8 november 2010


Utah
  • 2 aug. 2015
Wat er gebeurt, is dat de linker van OS X de gespecificeerde functie niet kan vinden in alles wat het probeert te linken. De reden hiervoor kan een ontbrekende preprocessor-macro zijn, of de gecompileerde code en/of bibliotheek wordt niet gekoppeld.

Mikezang

tot
originele poster
22 mei 2010
Tokio, Japan
  • 4 aug. 2015
Madd the Sane zei: Wat er aan de hand is, is dat de linker van OS X de gespecificeerde functie niet kan vinden in alles wat het probeert te linken. De reden hiervoor kan een ontbrekende preprocessor-macro zijn, of de gecompileerde code en/of bibliotheek wordt niet gekoppeld.
Bedankt voor je bericht! kunt u mij vertellen hoe dit probleem op te lossen? C

cqexbed

4 juni 2009
Duitsland
  • 4 aug. 2015
mikezang zei: Bedankt voor je bericht! kunt u mij vertellen hoe dit probleem op te lossen?

Ik gok hier alleen maar, maar ik denk dat je gperf moet hebben geïnstalleerd. Begin dan helemaal opnieuw met bouwen - d.w.z. maak distclean of iets dergelijks - of verwijder gewoon je map en vouw het tar-bestand opnieuw uit.

Cromulente

2 okt 2006
Het land van hoop en glorie
  • 4 aug. 2015
mikezang zei: Bedankt voor je bericht! kunt u mij vertellen hoe dit probleem op te lossen?

Het lijkt erop dat u de verkeerde GCC gebruikt.

Typ het volledige pad naar GCC 3.3.6 of voeg het toe aan het pad met een andere naam dan GCC (omdat Apple al een GCC-commando levert dat toevallig clang uitvoert). Dit is de reden waarom u de volgende foutmelding krijgt:

ld: symbool(en) niet gevonden voor architectuur x86_64

clang: error: linker-opdracht is mislukt met exit-code 1 (gebruik -v om de aanroep te zien)

Je draait eigenlijk Clang die compileert naar x86_64. U moet de GCC uitvoeren die u hebt gecompileerd. Normaal gesproken geeft u bij het compileren van GCC als een kruiscompiler het een andere naam dan GCC (wat een van de configuratiescriptopties voor GCC is bij het compileren), zodat u het verschil kunt zien tussen de GCC die door het systeem wordt geleverd en uw eigen GCC-kruis compiler.

Mikezang

tot
originele poster
22 mei 2010
Tokio, Japan
  • 4 aug. 2015
cqexbesd zei: Ik gok hier alleen maar, maar ik denk dat je gperf moet hebben geïnstalleerd. Begin dan helemaal opnieuw met bouwen - d.w.z. maak distclean of iets dergelijks - of verwijder gewoon je map en vouw het tar-bestand opnieuw uit.
Super goed! Gisteravond vond ik deze pagina http://stackoverflow.com/questions/3040801/error-compiling-gcc-undefined-reference-to-libc-name-p , de fout is verdwenen na het volgen.