2009-10-22 23 views
9

Sto avendo un sacco di problemi nel compilare l'eccellente sul mio MacBook Pro (con mac os x 10.6). Contiki utilizza in realtà molte caratteristiche specifiche di GNU e opzioni di GCC, AR, LD e così via. Così ho installato queste utility tramite macport, ma sembra che "port install binutils" non installi GNU ld, vero?Come installare gnu ld su mac os x 10.6?

Quindi, la domanda è: come faccio a ottenere GNU ld sul mio mac? Esiste una semplice alternativa alla strada più difficile (vale a dire il modo wget, configure, make, make install)?

+0

Il modo "difficile" non è così difficile ... (a meno che qualcosa vada storto, ovviamente) –

+0

Sicuro; ma in questo caso dubito fortemente che otterrò risultati migliori di quello ottenuto da macport (perché macports * fa * la cosa "wget ​​&& configure && make") – Gyom

+0

correlati: http://stackoverflow.com/questions/23290431/ld -linking-error-while-compiling-z3 –

risposta

10

Per quanto posso dire, GNU binutils non supporta il formato Mach-O. Nessuno dei documentation lo menziona, e alcuni su Google restituiscono alcuni recent messages indicando che non è supportato.

Ora, si parla del sistema Contiki, che mi sembra un sistema operativo integrato. Hai bisogno di compilare un eseguibile nativo o stai cercando di eseguire la compilazione incrociata per qualche altro ambiente? MacPorts include several ports of binutils per la compilazione incrociata.

+0

in effetti; il mio obiettivo a lungo termine è quello di fare cross-compilation, ovviamente. Ma all'inizio volevo provare l'obiettivo "piattaforma nativa", per familiarizzare con il modello di programmazione e tutto il resto. Comunque sembra sempre più "nativo" significa "GNU/linux" e solo "GNU/linux" :-( – Gyom

+0

Sembra che tu abbia ragione: sembra che abbiano bisogno di una toolchain GNU, che in genere significa Linux o Cygwin. È sempre possibile installare Linux su una macchina virtuale. Ho avuto la fortuna di installare Ubuntu Server Edition (poiché è più leggero dell'edizione desktop, escluso tutto il software desktop) su un VirtualBox VM http: //www.virtualbox. org/per una VM Linux facile e veloce. –

+0

Sì, grazie per il tuo aiuto. Ora sto iniziando a giocare con debian in una virtualbox, dopotutto, sarà sicuramente interessante avere un ambiente Linux a portata di mano. – Gyom

2
 
$ port info binutils 
(…) Tools are prefixed with g to avoid conflicts with original tools. (…) 
+0

Certo, ma: % ls/opt/local/var/macports/software/binutils/2.19_0/opt/local/bin gaddr2line \t GNM \t \t granlib \t \t gstrings gar \t \t gobjcopy \t greadelf gstrip gC++ filt \t gobjdump \t gsize – Gyom

+0

% ls/opt/local/bin/gld ls:/opt/local/bin/gld: Nessun file o directory – Gyom

+1

breve, tutto è lì * ma * ld, quindi la mia domanda. – Gyom

0

In genere è possibile collegarsi direttamente con gcc o g ++ e non è necessario gld. Prova a impostare LD per puntare al compilatore e vedere se non si collega per te.

+2

sicuro; "gcc -l" invocherà direttamente/usr/bin/ld per te :-) – Gyom

+0

Beh, è ​​meno utile di quanto speravo ... –