2009-10-22 23 views
9

Tengo muchos problemas para compilar el Contiki OS de otra manera excelente en mi macbook pro (con mac os x 10.6). Contiki realmente usa muchas características y opciones específicas de GNU de GCC, AR, LD, y más. Entonces instalé esas utilidades a través de macports, pero parece que "binutils de instalación de puertos" no instala GNU ld, ¿o sí?¿Cómo instalar gnu ld en mac os x 10.6?

Entonces, la pregunta es, ¿cómo obtengo GNU ld en mi mac? ¿Hay una alternativa simple al camino difícil (es decir, la forma wget, configure, make, make install)?

+0

La forma "difícil" no es tan difícil ... (a menos que algo vaya mal, por supuesto) –

+0

Sure; pero en este caso dudo mucho de que obtendré mejores resultados de lo que obtiene macport (porque macports * hace * la cosa "wget ​​&& configure && make") – Gyom

+0

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

Respuesta

10

Por lo que puedo decir, GNU binutils no es compatible con el formato Mach-O. Ninguno de los documentation lo menciona, y algunos Google busca un recent messages indicando que no es compatible.

Ahora, menciona el sistema operativo Contiki, que me parece un sistema operativo incorporado. ¿Necesita compilar en un archivo ejecutable nativo o está intentando compilar de forma cruzada para otro entorno? MacPorts incluye several ports of binutils para compilación cruzada.

+0

de hecho; Mi objetivo a largo plazo es hacer compilación cruzada, por supuesto. Pero al principio quise probar el objetivo de la "plataforma nativa", para familiarizarme con el modelo de programación y todo eso. Sin embargo, parece cada vez más como "nativo" significa "GNU/linux" y solo "GNU/linux" :-( – Gyom

+0

Parece que tiene razón, parece que necesitan una cadena de herramientas GNU, que generalmente significa Linux o Cygwin. Siempre puede instalar Linux en una máquina virtual. He tenido la suerte de instalar la edición de servidor de Ubuntu (ya que es más ligera que la edición de escritorio, sin incluir todo el software de escritorio) en una VirtualBox VM http: //www.virtualbox. org/para una VM de Linux rápida y fácil gratis. –

+0

Sí, gracias por su ayuda. Ahora estoy empezando a jugar con Debian en una caja virtual. Después de todo, probablemente sea genial tener a mano un entorno Linux. – Gyom

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

Claro, pero: % 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: No existe tal archivo o directorio – Gyom

+1

larga historia corta, todo está allí * pero * ld, de ahí mi pregunta. – Gyom

0

Generalmente, puede vincular directamente con gcc o g ++ y no necesita gld. Intente configurar LD para apuntar al compilador y ver si no lo hace por usted.

+2

seguro; "gcc -l" invocará directamente/usr/bin/ld para usted :-) – Gyom

+0

Bueno, eso es menos útil de lo que esperaba ... –