2013-10-17 8 views
5

Podczas kompilowania jądra systemu Android dla Nexusa 7 na Mountain Lion 10.8.4 natknąłem się na błąd krytyczny: plik "elf.h" nie znaleziono problem:Błąd "elf.h" nie znaleziono pliku podczas kompilowania jądra systemu Android dla Nexusa 7 na Mac OS X

/Volumes/Android/WORKING_DIRECTORY/device/asus/grouper/tegra/ 
[[email protected]]$ make 
scripts/kconfig/conf --silentoldconfig Kconfig 
    CHK  include/linux/version.h 
    UPD  include/linux/version.h 
    CHK  include/generated/utsrelease.h 
    UPD  include/generated/utsrelease.h 
    Generating include/generated/mach-types.h 
    CC  kernel/bounds.s 
    GEN  include/generated/bounds.h 
    CC  arch/arm/kernel/asm-offsets.s 
    GEN  include/generated/asm-offsets.h 
    CALL scripts/checksyscalls.sh 
    CC  scripts/mod/empty.o 
    HOSTCC scripts/mod/mk_elfconfig 
scripts/mod/mk_elfconfig.c:4:10: fatal error: 'elf.h' file not found 
#include <elf.h> 
     ^
1 error generated. 
make[2]: *** [scripts/mod/mk_elfconfig] Error 1 
make[1]: *** [scripts/mod] Error 2 
make: *** [scripts] Error 2 

Czy ktoś wie jak rozwiązać ten problem tak, że kompilacja jądra może kontynuować?

+0

... zainstalować bibliotekę elfów? –

+0

czy powinienem zainstalować MacPorts? Widzę tam ** elftoolchain **. Czy możesz wskazać mi samodzielną bibliotekę elfa dla OS X? – derekg

+0

http://www.mr511.de/software/english.html –

Odpowiedz

6

mam odpowiedzi na moje własne pytanie, ponieważ znalazłem obejście dla brakującego elf.h pliku:

cd /Volumes/Android/WORKING_DIRECTORY/external/elfutils/libelf/ 
$ sudo cp -a elf.h /usr/include 

kopię pliku „elf.h” teraz w/usr/include kompilacja idzie przez pewien czas, ale następnie zatrzymuje się ponownie z innym błędem:

arch/arm/mach-tegra/sleep.S: Assembler messages: 
arch/arm/mach-tegra/sleep.S:240: Error: selected processor does not support ARM mode `smC#0' 
make[1]: *** [arch/arm/mach-tegra/sleep.o] Error 1 
make: *** [arch/arm/mach-tegra] Error 2 

Nie wiem, co zrobić z tym ostatnim błędem.

UPDATE: Dałam na próby skompilować jądro Androida bezpośrednio pod OS X. Zamiast tego, po zainstalowaniu 64-bitowe Ubuntu na VirtualBox a następnie z instrukcjami podanymi na tej stronie:

http://forum.xda-developers.com/showthread.php?t=1774035

wyjątkiem tak jak powiedziałem, użyłem VirtualBox, a nie VMWare Player, jak sugerowała powyższa strona. Udało się to znakomicie i nie miałem żadnych problemów z siecią i mogłem ssh do Ubuntu, aby łatwo przenieść skompilowane jądro z powrotem do OS X.

Odwołałem się również do tej strony, aby uzyskać właściwe źródło jądra dla mojego urządzenia (panterka) Montowane gcc i składnia polecenia make (marka tegra3_android_defconfig):

http://source.android.com/source/building-kernels.html

mam nadzieję, że odpowiedź będzie zaoszczędzić ktoś jakiś czas.

+0

DZIĘKUJEMY TAK DUŻO MĘŻCZYZNU. to naprawdę uratowało mój czas. (thumbs_up) –

+0

Uratowałeś mi mnóstwo czasu. Dzięki. –

Powiązane problemy