Andet

Mac Hvordan undgår jeg 'Udefinerede symboler til arkitektur x86_64'?

mikezang

til
Original plakat
22. maj 2010
Tokyo, Japan
  • 25. juli 2015
Jeg forsøgte at lave en krydskompilering til min gamle Lego RCX, jeg bruger GCC 3.3.6 og NEWLIB 1.13.
Kode: |_+_|
Da jeg lavede det, fik jeg endelig fejl som nedenfor, hvad kan jeg gøre?
Kode: |_+_|

Madd den Forstandige

til
8. november 2010


Utah
  • 2. august 2015
Det, der sker, er, at OS X's linker ikke kan finde den angivne funktion i noget, den forsøger at linke. Årsagen til dette kan være en manglende præprocessormakro, eller den kompilerede kode og/eller bibliotek er ikke forbundet.

mikezang

til
Original plakat
22. maj 2010
Tokyo, Japan
  • 4. august 2015
Madd the Sane sagde: Det, der sker, er, at OS X's linker ikke kan finde den specificerede funktion i noget, den forsøger at linke. Årsagen til dette kan være en manglende præprocessormakro, eller den kompilerede kode og/eller bibliotek er ikke forbundet.
Tak for din besked! kan du fortælle mig, hvordan jeg løser dette problem? C

cqexbesd

4. juni 2009
Tyskland
  • 4. august 2015
mikezang sagde: Tak for din besked! kan du fortælle mig, hvordan jeg løser dette problem?

Jeg gætter kun her, men jeg tror, ​​at du muligvis skal have gperf installeret. Begynd derefter at bygge fra bunden - altså lav distclean eller lignende - eller slet bare dit bibliotek og udvid tar-filen igen.

Cromulent

2. oktober 2006
Landet med håb og herlighed
  • 4. august 2015
mikezang sagde: Tak for din besked! kan du fortælle mig, hvordan jeg løser dette problem?

Det ser ud til, at du bruger den forkerte GCC.

Skriv enten den fulde sti til GCC 3.3.6 eller føj den til stien med et andet navn end GCC (fordi Apple allerede leverer en GCC-kommando, som tilfældigvis faktisk kører clang). Det er derfor, du har følgende fejl:

ld: symbol(er) ikke fundet for arkitektur x86_64

clang: fejl: linker-kommando mislykkedes med afslutningskode 1 (brug -v for at se påkaldelse)

Du kører faktisk Clang, som kompilerer til x86_64. Du skal køre den GCC, du kompilerede. Normalt, når du kompilerer GCC som en krydskompiler, giver du den et andet navn end GCC (som er en af ​​de konfigurerede script-muligheder for GCC, når du kompilerer den), så du kan se forskel på den GCC, der leveres af systemet og dit eget GCC-kryds. compiler.

mikezang

til
Original plakat
22. maj 2010
Tokyo, Japan
  • 4. august 2015
cqexbesd sagde: Jeg gætter kun her, men jeg tror, ​​du skal have gperf installeret. Begynd derefter at bygge fra bunden - altså lav distclean eller lignende - eller slet bare dit bibliotek og udvid tar-filen igen.
Store! I går aftes fandt jeg denne side http://stackoverflow.com/questions/3040801/error-compiling-gcc-undefined-reference-to-libc-name-p , fejlen er væk efter følg den.