Altro

Mac Come evitare 'Simboli non definiti per l'architettura x86_64'?

mikezang

a
Manifesto originale
22 maggio 2010
Tokyo, Giappone
  • 25 luglio 2015
Ho provato a creare una compilazione incrociata per il mio vecchio Lego RCX, uso GCC 3.3.6 e NEWLIB 1.13.
Codice: |_+_|
Quando lo faccio, alla fine ho ricevuto un errore come di seguito, cosa posso fare?
Codice: |_+_|

Madd il sano di mente

a
8 novembre 2010


Utah
  • 2 agosto 2015
Quello che sta succedendo è che il linker di OS X non riesce a trovare la funzione specificata in qualsiasi cosa stia cercando di collegare. Il motivo potrebbe essere una macro del preprocessore mancante o il codice e/o la libreria compilati non vengono collegati.

mikezang

a
Manifesto originale
22 maggio 2010
Tokyo, Giappone
  • 4 agosto 2015
Madd the Sane ha detto: Quello che sta succedendo è che il linker di OS X non riesce a trovare la funzione specificata in qualsiasi cosa stia cercando di collegare. Il motivo potrebbe essere una macro del preprocessore mancante o il codice e/o la libreria compilati non vengono collegati.
Grazie per il tuo messaggio! sapete dirmi come risolvere questo problema? C

cqexbesd

4 giugno 2009
Germania
  • 4 agosto 2015
mikezang ha detto: Grazie per il tuo messaggio! sapete dirmi come risolvere questo problema?

Sto solo indovinando qui, ma penso che potresti aver bisogno di installare gperf. Quindi inizia a creare da zero, ad esempio make distclean o simili, o semplicemente elimina la tua directory ed espandi nuovamente il file tar.

Cromulent

2 ottobre 2006
La Terra della Speranza e della Gloria
  • 4 agosto 2015
mikezang ha detto: Grazie per il tuo messaggio! sapete dirmi come risolvere questo problema?

Sembra che tu stia usando il GCC sbagliato.

Digita il percorso completo di GCC 3.3.6 o aggiungilo al percorso con un nome diverso da GCC (perché Apple fornisce già un comando GCC che esegue effettivamente il clang). Questo è il motivo per cui hai il seguente errore:

ld: simbolo/i non trovato/i per l'architettura x86_64

clang: errore: comando linker non riuscito con codice di uscita 1 (usa -v per vedere l'invocazione)

Stai effettivamente eseguendo Clang che viene compilato su x86_64. Devi eseguire il GCC che hai compilato. Normalmente quando si compila GCC come cross compiler gli si dà un nome diverso da GCC (che è una delle opzioni di configurazione dello script per GCC quando lo si compila) in modo da poter distinguere tra il GCC fornito dal sistema e il proprio cross GCC compilatore.

mikezang

a
Manifesto originale
22 maggio 2010
Tokyo, Giappone
  • 4 agosto 2015
cqexbesd ha detto: Sto solo indovinando qui, ma penso che potresti aver bisogno di installare gperf. Quindi inizia a creare da zero, ad esempio make distclean o simili, o semplicemente elimina la tua directory ed espandi nuovamente il file tar.
Grande! Ieri sera ho trovato questa pagina http://stackoverflow.com/questions/3040801/error-compiling-gcc-undefined-reference-to-libc-name-p , l'errore è sparito dopo averlo seguito.