2 votos

Instalación de Elf en Mac a través de homebrew

Estoy tratando de compilar un kernel de Android en mi Mac (El Capitan). Se necesita incluir un cierto "elf.h" archivo de encabezado. No es claro para mí, sin embargo, lo que este archivo es exactamente, y me disculpo por eso; de todos modos, lo que ahora me pregunto es: ¿cómo lo instalo?

He intentado brew install libelf, pero esto sólo se instala un gelf.h, y tenía una mirada en elflang en github (https://github.com/elflang), pero hay dos opciones en este repositorio, ninguno de los cuales parece incluir un elfo.h

3voto

Enrico Puntos 40

He tenido suerte y encuentra rápidamente una solución, parece. El elf.h es específica para sistemas Linux (creo). Pero alguien logró adaptarse a Mac OS X:

https://GIST.github.com/mlafeldt/3885346

Sólo pegar ese archivo en /usr/local/include/ me permitió compilar con éxito. (Para ser honesto, todavía tengo que probar el resultado, pero la compilación terminó con éxito).

2voto

Arran McDonald Puntos 11

Pruebe uno de dtrace que apple envía

https://opensource.apple.com/source/dtrace/dtrace-96/sys/elf.h

0voto

klanomath Puntos 19587

Un enfoque diferente en comparación con user2707001 la respuesta es descrito aquí: [GUÍA] la Construcción de Android Kernel en OSX:

Aquí puede crear el archivo elf.h a ti mismo copiando todo el fragmento a continuación, pegarlo en la ventana del Terminal y golpear al Introducir la clave:

cat <<EOT >> /usr/local/include/elf.h
#include "../opt/libelf/include/libelf/gelf.h"
#define R_386_NONE 0
#define R_386_32 1
#define R_386_PC32 2
#define R_ARM_NONE 0
#define R_ARM_PC24 1
#define R_ARM_ABS32 2
#define R_MIPS_NONE 0
#define R_MIPS_16 1
#define R_MIPS_32 2
#define R_MIPS_REL32 3
#define R_MIPS_26 4
#define R_MIPS_HI16 5
#define R_MIPS_LO16 6
#define R_IA64_IMM64 0x23 /* symbol + addend, mov imm64 */
#define R_PPC_ADDR32 1 /* 32bit absolute address */
#define R_PPC64_ADDR64 38 /* doubleword64 S + A */
#define R_SH_DIR32 1
#define R_SPARC_64 32 /* Direct 64 bit */
#define R_X86_64_64 1 /* Direct 64 bit */
#define R_390_32 4 /* Direct 32 bit. */
#define R_390_64 22 /* Direct 64 bit. */
#define R_MIPS_64 18
EOT

Esto creará un nuevo shim-archivo /usr/local/include/elf.h sólo contiene las líneas que comienzan con un #

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X