Alte

Mac Cum să evitați „Simboluri nedefinite pentru arhitectura x86_64”?

mikezang

la
Poster original
22 mai 2010
Tokyo, Japonia
  • 25 iulie 2015
Am încercat să creez o compilare încrucișată pentru vechiul meu Lego RCX, folosesc GCC 3.3.6 și NEWLIB 1.13.
Cod: |_+_|
Când o fac, în sfârșit am primit o eroare ca mai jos, ce pot face?
Cod: |_+_|

Madd cel sănătos

la
8 noiembrie 2010


Utah
  • 2 august 2015
Ceea ce se întâmplă este că linkerul OS X nu poate găsi funcția specificată în nimic pe care încearcă să le conecteze. Motivul pentru aceasta ar putea fi lipsa unei macrocomenzi preprocesor sau codul compilat și/sau biblioteca nu este conectată.

mikezang

la
Poster original
22 mai 2010
Tokyo, Japonia
  • 4 august 2015
Madd the Sane a spus: Ce se întâmplă este că linker-ul OS X nu poate găsi funcția specificată în nimic pe care încearcă să le conecteze. Motivul pentru aceasta ar putea fi lipsa unei macrocomenzi preprocesor sau codul compilat și/sau biblioteca nu este conectată.
Multumesc pentru mesaj! imi puteti spune cum sa rezolv aceasta problema? C

cqexbesd

4 iunie 2009
Germania
  • 4 august 2015
mikezang a spus: Mulțumesc pentru mesaj! imi puteti spune cum sa rezolv aceasta problema?

Bănuiesc că aici, dar cred că ar putea fi nevoie să aveți instalat gperf. Apoi începeți să construiți de la zero - adică faceți distclean sau similar - sau pur și simplu ștergeți directorul și extindeți din nou fișierul tar.

Cromulent

2 octombrie 2006
Țara Speranței și a Gloriei
  • 4 august 2015
mikezang a spus: Mulțumesc pentru mesaj! imi puteti spune cum sa rezolv aceasta problema?

Se pare că utilizați GCC greșit.

Fie introduceți calea completă către GCC 3.3.6, fie adăugați-o la calea cu un alt nume decât GCC (deoarece Apple oferă deja o comandă GCC care rulează de fapt clang). Acesta este motivul pentru care aveți următoarea eroare:

ld: simbol(e) nu au fost găsite pentru arhitectura x86_64

clang: eroare: comanda linker a eșuat cu codul de ieșire 1 (utilizați -v pentru a vedea invocarea)

De fapt rulați Clang care se compilează la x86_64. Trebuie să rulați GCC-ul pe care l-ați compilat. În mod normal, atunci când compilați GCC ca compilator încrucișat, îi dați un alt nume decât GCC (care este una dintre opțiunile de configurare a scriptului pentru GCC atunci când îl compilați), astfel încât să puteți face diferența dintre GCC furnizat de sistem și propriul dvs. cross GCC compilator.

mikezang

la
Poster original
22 mai 2010
Tokyo, Japonia
  • 4 august 2015
cqexbesd a spus: Sunt doar ghicit aici, dar cred că ar putea fi necesar să aveți instalat gperf. Apoi începeți să construiți de la zero - adică faceți distclean sau similar - sau pur și simplu ștergeți directorul și extindeți din nou fișierul tar.
Grozav! Aseara am gasit aceasta pagina http://stackoverflow.com/questions/3040801/error-compiling-gcc-undefined-reference-to-libc-name-p , eroarea a dispărut după ce o urmărești.