Annen

Mac Hvordan unngå 'Udefinerte symboler for arkitektur x86_64'?

mikezang

til
Original plakat
22. mai 2010
Tokyo, Japan
  • 25. juli 2015
Jeg prøvde å lage en krysskompilering for min gamle Lego RCX, jeg bruker GCC 3.3.6 og NEWLIB 1.13.
Kode: |_+_|
Når jeg gjør det, fikk jeg endelig feil som nedenfor, hva kan jeg gjøre?
Kode: |_+_|

Madd the Sane

til
8. november 2010


Utah
  • 2. august 2015
Det som skjer er at OS Xs linker ikke kan finne den spesifiserte funksjonen i noe den prøver å koble til. Årsaken til dette kan være en manglende forprosessormakro, eller den kompilerte koden og/eller biblioteket blir ikke koblet.

mikezang

til
Original plakat
22. mai 2010
Tokyo, Japan
  • 4. august 2015
Madd the Sane sa: Det som skjer er at OS Xs linker ikke kan finne den spesifiserte funksjonen i noe den prøver å koble til. Årsaken til dette kan være en manglende forprosessormakro, eller den kompilerte koden og/eller biblioteket blir ikke koblet.
Takk for meldingen din! kan du fortelle meg hvordan jeg løser dette problemet? C

cqexbesd

4. juni 2009
Tyskland
  • 4. august 2015
mikezang sa: Takk for meldingen! kan du fortelle meg hvordan jeg løser dette problemet?

Jeg gjetter bare her, men jeg tror du må ha gperf installert. Begynn så å bygge fra bunnen av - dvs. gjør distclean eller lignende - eller slett katalogen din og utvide tar-filen igjen.

Cromulent

2. oktober 2006
Landet med håp og ære
  • 4. august 2015
mikezang sa: Takk for meldingen! kan du fortelle meg hvordan jeg løser dette problemet?

Det ser ut til at du bruker feil GCC.

Skriv enten hele banen til GCC 3.3.6 eller legg den til banen med et annet navn enn GCC (fordi Apple allerede gir en GCC-kommando som faktisk kjører clang). Dette er grunnen til at du har følgende feil:

ld: symbol(er) ikke funnet for arkitektur x86_64

clang: error: linker-kommando mislyktes med utgangskode 1 (bruk -v for å se påkalling)

Du kjører faktisk Clang som kompilerer til x86_64. Du må kjøre GCC som du kompilerte. Normalt når du kompilerer GCC som en krysskompilator, gir du den et annet navn enn GCC (som er et av konfigureringsskriptalternativene for GCC når du kompilerer det) slik at du kan se forskjellen mellom GCC som leveres av systemet og ditt eget GCC-kryss kompilator.

mikezang

til
Original plakat
22. mai 2010
Tokyo, Japan
  • 4. august 2015
cqexbesd sa: Jeg gjetter bare her, men jeg tror du må ha gperf installert. Begynn så å bygge fra bunnen av - dvs. gjør distclean eller lignende - eller slett katalogen din og utvide tar-filen igjen.
Flott! I går kveld fant jeg denne siden http://stackoverflow.com/questions/3040801/error-compiling-gcc-undefined-reference-to-libc-name-p , feilen er borte etter å ha fulgt den.