2013-02-14 64 views
1

對於在 Android gcc sysroot and linker給出了在Ubuntu上編譯NDK項目的原因,我編譯我的Android NDK項目,arm-linux-gnueabi-gcc編譯。有有Android NDK特異性不包括編譯時沒有問題,但現在包括jni.h包括<jni.h>與ARM-Linux的gnueabi-GCC

arm-linux-gnueabi-gcc -static -o main.exe main.c -I'path/to/native_app_glue' -I'/path/to/android-14/arch-arm/usr/include'

我得到一些神祕的錯誤undefined reference to __sF

有沒有人知道什麼可能是錯的,或有人得到了Android NDK項目與jni.h成功編譯與這樣的獨立工具鏈?

回答

2

除非您靜態鏈接所有內容,否則編譯arm-linux-gnueabi-工具鏈將不起作用,因爲Android使用與Ubuntu不同的sonames。

+0

你能說出'arm-linux-gnueabi-gcc'語句你會用它來使這個工作嗎? – 2013-02-14 04:37:17

+1

將'-static'添加到'CFLAGS' /'CXXFLAGS'。但是,您應該小心許可證:LGPL要求您提供程序的目標文件給任何請求它們的人。 – 2013-02-14 04:53:53

+0

這裏是爲我工作的'arm-linux-gnueabi-gcc -c ./main.c -o ./main.o -static -g --sysroot ='/ mnt/hgfs/F/android-ndk-r8d/platforms/android-14/arch-arm'' idk CFLAGS的工作原理。 – 2013-02-14 05:26:49