2009-10-22 13 views
9

Mam wiele problemów ze skompilowaniem znakomitego Contiki OS na moim MacBook Pro (z Mac OS X 10.6). Contiki faktycznie używa wielu specyficznych dla GNU funkcji i opcji GCC, AR, LD i tak dalej. Zainstalowałem te narzędzia przez macports, ale wygląda na to, że "instalacja portów binutils" nie instaluje GNU Ld, prawda?Jak zainstalować gnu ld na Mac OS X 10.6?

Pytanie brzmi, w jaki sposób mogę uzyskać GNU ld na moim Macu? Czy istnieje prosta alternatywa dla trybu twardego (czyli wget, configure, make, make install)?

+0

"Ciężka" droga nie jest aż tak trudna ... (chyba że coś pójdzie nie tak oczywiście) –

+0

Pewnie; ale w tym przypadku bardzo wątpię, że dostanę lepsze wyniki niż Macport (ponieważ Macports * robi * rzecz "wget ​​&& configure && make") – Gyom

+0

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

Odpowiedz

10

O ile mogę powiedzieć, GNU binutils nie obsługuje formatu Mach-O. Żadne z documentation nie wspomina o tym, a niektóre Googling okazuje się być w pewnym stopniu recent messages, co oznacza, że ​​nie jest obsługiwane.

Teraz wspominasz o systemie Contiki, który wygląda na mnie jak wbudowany system operacyjny. Czy chcesz skompilować do natywnego pliku wykonywalnego, czy próbujesz skompilować krzyżowo w innym środowisku? MacPorts zawiera several ports of binutils do kompilacji krzyżowej.

+0

rzeczywiście; Moim długoterminowym celem jest oczywiście kompilacja krzyżowa. Ale najpierw chciałem wypróbować cel "natywnej platformy", żeby zapoznać się z modelem programowania i tym podobne. Wygląda jednak na to, że "rodzimy" oznacza "GNU/linux" i tylko "GNU/linux" :-( – Gyom

+0

Wygląda na to, że masz rację, wydaje się, że potrzebujesz zestawu narzędzi GNU, co zwykle oznacza Linux lub Cygwin. Zawsze możesz zainstalować Linuksa na maszynie wirtualnej. Miałem szczęście instalując wersję Ubuntu Server (ponieważ jest lżejsza niż wersja desktopowa, nie włączając całego oprogramowania komputerowego) na VirtualBox VM http: //www.virtualbox. org/dla szybkiej i łatwej darmowej maszyny wirtualnej Linux –

+0

Tak, dziękuję za twoją pomoc Zacznę teraz grać z debianem w wirtualnej skrzynce, w końcu będzie fajnie mieć pod ręką także środowisko linuxowe. – Gyom

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

Oczywiście, ale: % 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: Brak takiego pliku lub katalogu – Gyom

+1

krótka historia, wszystko tam jest * ale * ld, stąd moje pytanie. – Gyom

0

Generalnie można połączyć bezpośrednio z gcc lub g ++ i nie potrzebujesz gld. Spróbuj ustawić LD, aby wskazywało na kompilator i sprawdź, czy nie łączy się z Tobą.

+2

na pewno; "gcc -l" wywoła bezpośrednio dla ciebie/usr/bin/ld :-) – Gyom

+0

Cóż, to mniej przydatne niż miałem nadzieję ... –