2013-11-21 2 views
0

Я хочу реализовать свой собственный эльфийский компоновщик. Поэтому я узнал код из/binoic/linker. Я скопировал код под/binoic/linker в свой проект и обновил свой Android.mk, в котором основные модификации включают путь, поскольку компоновщик зависит от libc.Как создать мою собственную программу NDK с источником AOSP?

Но я не смог построить свой проект из-за множества странных ошибок связывания. B

В том числе пути в моем Android.mk:

# We need to access Bionic private headers in the linker. 
LOCAL_CFLAGS += -I/media/android/androidSrc/master/bionic/libc/ 
LOCAL_CFLAGS += -I/media/android/androidSrc/master/bionic/libc/include/ 
LOCAL_CFLAGS += -I/media/android/androidSrc/master/bionic/libc/arch-arm/include/ 

Некоторые из компиляции ошибок:

[email protected]:/media/android/WorkSpace/bep$ ndk-build 
[armeabi] Compile++ thumb: testpacker <= bep.cpp 
In file included from /media/android/androidSrc/master/bionic/libc/include/unistd.h:34:0, 
       from /media/android/androidSrc/master/bionic/libc/include/fcntl.h:35, 
       from jni/bep.cpp:5: 
/media/android/androidSrc/master/bionic/libc/include/sys/select.h:40:0: warning: "FD_SETSIZE" redefined [enabled by default] 
/media/android/android-ndk-r9b/platforms/android-8/arch-arm/usr/include/linux/time.h:37:0: note: this is the location of the previous definition 
/media/android/androidSrc/master/bionic/libc/include/sys/select.h:41:0: warning: "NFDBITS" redefined [enabled by default] 
/media/android/android-ndk-r9b/platforms/android-8/arch-arm/usr/include/linux/time.h:35:0: note: this is the location of the previous definition 
/media/android/androidSrc/master/bionic/libc/include/sys/select.h:42:0: warning: "__FDSET_LONGS" redefined [enabled by default] 
/media/android/android-ndk-r9b/platforms/android-8/arch-arm/usr/include/linux/posix_types.h:24:0: note: this is the location of the previous definition 
/media/android/androidSrc/master/bionic/libc/include/sys/select.h:48:0: warning: "__FDELT" redefined [enabled by default] 
/media/android/android-ndk-r9b/platforms/android-8/arch-arm/usr/include/linux/posix_types.h:27:0: note: this is the location of the previous definition 
/media/android/androidSrc/master/bionic/libc/include/sys/select.h:49:0: warning: "__FDMASK" redefined [enabled by default] 
/media/android/android-ndk-r9b/platforms/android-8/arch-arm/usr/include/linux/posix_types.h:30:0: note: this is the location of the previous definition 
/media/android/androidSrc/master/bionic/libc/include/sys/select.h:52:0: warning: "FD_ZERO" redefined [enabled by default] 
/media/android/android-ndk-r9b/platforms/android-8/arch-arm/usr/include/linux/time.h:41:0: note: this is the location of the previous definition 
/media/android/androidSrc/master/bionic/libc/include/sys/select.h:62:0: warning: "FD_CLR" redefined [enabled by default] 
/media/android/android-ndk-r9b/platforms/android-8/arch-arm/usr/include/linux/time.h:39:0: note: this is the location of the previous definition 
/media/android/androidSrc/master/bionic/libc/include/sys/select.h:63:0: warning: "FD_SET" redefined [enabled by default] 
/media/android/android-ndk-r9b/platforms/android-8/arch-arm/usr/include/linux/time.h:38:0: note: this is the location of the previous definition 
/media/android/androidSrc/master/bionic/libc/include/sys/select.h:64:0: warning: "FD_ISSET" redefined [enabled by default] 
/media/android/android-ndk-r9b/platforms/android-8/arch-arm/usr/include/linux/time.h:40:0: note: this is the location of the previous definition 
In file included from jni/bep.cpp:2:0: 
/media/android/android-ndk-r9b/platforms/android-8/arch-arm/usr/include/jni.h:235:68: error: expected ';' at end of member declaration 
/media/android/android-ndk-r9b/platforms/android-8/arch-arm/usr/include/jni.h:235:70: error: '__NDK_FPABI__' does not name a type 
/media/android/android-ndk-r9b/platforms/android-8/arch-arm/usr/include/jni.h:236:73: error: expected ';' at end of member declaration 
/media/android/android-ndk-r9b/platforms/android-8/arch-arm/usr/include/jni.h:236:75: error: '__NDK_FPABI__' does not name a type 

Так что, если я хочу использовать источник в AOSP в моем проекте, как решить ошибки связывания?

ответ

0

Я попытался поместить свой код в папку AOSP и скомпилирован там. Компиляция прошла успешно, но во время выполнения произошла ошибка. Сдаваться.

Смежные вопросы