2009-10-22 7 views
9

У меня много проблем с компиляцией отличного Contiki OS на моем macbook pro (с mac os x 10.6). Contiki фактически использует множество специфических для GNU функций и опций GCC, AR, LD и т. Д. Поэтому я установил эти утилиты через macports, но похоже, что «install install binutils» не устанавливает GNU ld, не так ли?Как установить gnu ld на mac os x 10.6?

Итак, вопрос в том, как мне получить GNU ld на моем mac? Есть ли простая альтернатива жесткому пути (т. Е. Способ wget, configure, make, make install)?

+0

«Жесткий» способ не так уж ист ... (если что-то не так, конечно) –

+0

Sure; но в этом случае я очень сомневаюсь, что получаю лучшие результаты, чем то, что получает macport (потому что macports * делает * вещь «wget && configure && make») – Gyom

+0

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

ответ

10

Насколько я могу судить, GNU binutils не поддерживает формат Mach-O. Ни один из documentation не упоминает об этом, и некоторый Googling появляется около recent messages, что указывает на то, что он не поддерживается.

Теперь вы упоминаете ОС Contiki, которая выглядит как встроенная операционная система. Вам нужно скомпилировать исходный исполняемый файл, или вы пытаетесь перекрестно скомпилировать какую-либо другую среду? MacPorts включает several ports of binutils для кросс-компиляции.

+0

действительно; Конечно, моя долгосрочная цель - сделать кросс-компиляцию. Но сначала я хотел попробовать цель «родной платформы», чтобы познакомиться с моделью программирования и все такое. Однако он выглядит все более и более похожим на «native», что означает «GNU/linux» и только «GNU/linux» :-( – Gyom

+0

Похоже, вы правы, им нужна GNU toolchain, что обычно означает Linux или Cygwin. Вы всегда можете установить Linux на виртуальную машину. Мне посчастливилось установить версию сервера Ubuntu (так как она меньше веса рабочего стола, не включая все программное обеспечение для настольных компьютеров) на виртуальную виртуальную машину VM http: //www.virtualbox. org/для быстрой и легкой бесплатной виртуальной машины Linux. –

+0

Да, спасибо за вашу помощь. Теперь я начинаю играть с debian в виртуальном боксе. В конце концов, возможно, будет здорово иметь среду linux. – Gyom

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

Уверен, но: % ls/opt/local/var/macports/software/Binutils/2.19_0/Opt/местные/бен gaddr2line \t GNM \t \t granlib \t \t gstrings гар \t \t \t gobjcopy greadelf gstrip дс ++ ФИЛТР \t gobjdump \t gsize – Gyom

+0

% ls/opt/local/bin/gld ls:/opt/local/bin/gld: Нет такого файла или каталога – Gyom

+1

длинный рассказ короткий, все есть * но * ld, следовательно мой вопрос. – Gyom

0

Как правило, вы можете напрямую связать gcc или g ++ и не нуждаться в gld. Попробуйте установить LD, чтобы указать на компилятор и посмотреть, не привязана ли она для вас.

+2

уверенный; «gcc -l» будет напрямую вызывать/usr/bin/ld для вас :-) – Gyom

+0

Ну, это менее полезно, чем я надеялся ... –